EXPRESS 的使用
介绍:express 是一个第三方模块,是封装了 nodejs 的库,使工作简单化,提高开发效率。
-
搭建 web 服务
- 下载 express 包到项目运行依赖中
$ npm i express -S
- 搭建服务
// 引入 express 模块 const express = require('express') // 创建一个 web 服务 const server = express() // 处理接口 server.get('/', (req, res) => { res.send({ code: 1, message: '返回的数据' }) }) // 监听端口 server.listen(3000, 'localhost', function () { console.log('服务创建成功') })
-
静态资源托管
server.use(express.static('./public'))
-
接口响应
- 支持各种请求:get、post、put、delete …
server.get(url, (req, res, next) => {}) server.post(url, (req, res, next) => {}) server.all('/api/*', (req, res, next) => {}) // 匹配 /api 下面的所有请求 server.use('/', (req, res, next) => {}) // / 下所有请求都会进来 // next 调用后才会执行后面的请求 ...
-
请求体
// 用于 获取非地址栏数据 的中间件,需要下载 const bodyParser = require('body-parser') server.use(bodyParser()) // 使用这个中间件 server.all('/api/:id', (req, res, next) => { // 这里的 :id 表示动态接口 req.query // 获取地址栏的数据,返回的是一个对象 req.body // 获取 非地址栏的数据,需要依赖 body-parser 这个中间件 req.parser // 获取动态接口名 req.mothod // 获取前端的请求方式 next() // 继续后面的请求处理 })
-
响应体
server.all('/api/*', (req, res, next) => { res.send(any) // 可以返回任意类型数据,且不需要设置响应头 res.end(string | buffer) res.json(json) // 返回 json 数据 res.jsonp(响应数据) // 会调用 请求时的回调函数,并传递响应数据回去 都是 get 请求 res.sendFile(path.sesolve('public/error.html')) // 渲染 纯 html 页面 next() })
-
jsonp 响应
// 设置 jsonp 的回调函数名称, 不设置 默认是 callback server.set('jsonp callback name', 'cb') server.get('jsonp 接口地址', (req, res, next) => { res.jsonp(数据) // 返回数据给前端 })
-
use
// use 作用:安装中间件、路由、接收一个函数 server.use([地址], 中间件 | 路由 | 函数体) // 中间件:处理自定义业务,只处理请求到结束响应的中间部分,body-parser 就是一个处理 非地址栏数据的中间件 // 地址不写默认就是 / 根目录
-
后端重定向
// 跳转到指定地址或接口 post 请求实现不了跳转 res.redirect('http:localhost:3000/index.html')