Express进阶

138 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第2天,点击查看活动详情

静态资源的托管

express.static()

express提供了一个非常好用的函数,叫做express.static()使用这个函数可以非常方便的创建一个静态资源服务器,可以将某个目录下的所有文件对外开放

//在app.use方法内使用此函数
app.use(express.static('public'))

可以同时托管多个静态文件,查找的顺序为从上到下,在前面找到文件后就不会向后继续查找了

//导入express
const express = require('express')
//创建web服务器
const app = express()

app.use(express.static('public'))
app.use(express.static('files'))
//调用app.listen(80,启动成功后的回调函数),启动服务器
app.listen(80, () => {
    console.log('express')
})

挂载路径前缀

挂载前缀后,访问目录的资源时也需要添加前缀

app.use('/public',express.static('public'))

注意: 在 Node 中,没有全局作用域,只有模块作用域

  • 外部访问不到内部
  • 内部也访问不到外部
  • 默认都是封闭的
  • 既然是模块作用域,那如何让模块与模块之间进行通信
  • 有时候,我们加载文件模块的目的不是为了简简单单的执行里面的代码,更重要是为了使用里面的某个成员

nodemon

快捷的帮你运行node app.js命令,来启动项目。

之前的时node app.js 现在用时改为 nodemon app.js

所有挂载项目都卸载app.js 文件太多太大了,所以需要模块化开发

  • 使用expres.Router() 来写需要的路由,然后通过module.exports将路由暴漏出去
const express = require('express')
const router = express.Router()

router.get('/user/list', (req, res) => {
    res.send('get user list')
})

module.exports = router

如何使用自定义模块

const express = require('express')
const app = express()

//导入路由模块
const router =require('./router')
// 注册路由模块
app.use(router)

回顾原始请求方式

监听get请求

通过app.get()方法,可以监听客户端的GET请求,具体的语法格式如下: 参数1:客户端的请求地址 参数2:请求对应的处理函数 req : 请求对象(包含了与请求相关的属性和方法) res : 响应对象(包含了与响应相关的属性和方法)

app.get('url',function(req,res))

监听post请求

通过app.post()方法,可以监听客户端的POST请求,具体的语法格式如下: 参数1:客户端的请求地址 参数2:请求对应的处理函数 req : 请求对象(包含了与请求相关的属性和方法) res : 响应对象(包含了与响应相关的属性和方法)

app.post('url',function(req,res))

添加访问前缀

app.use('/api',router)

app.use

  • 注册全局中间件