首页
关于我的
文章归档
友情链接
更多
随机进入
Search
1
解决包下载慢的问题
1,174 阅读
2
PHP简易本地授权实现
219 阅读
3
RSA生成密钥和公钥
69 阅读
4
mysql分批插入数据
65 阅读
5
常用sql语句
63 阅读
默认分类
前端技术
登录
Search
标签搜索
node.js
express
mysql
PHP
FileSystem
path
npm
jsonwebtoken
session
中间件
axios
RSA
FengXin
累计撰写
14
篇文章
累计收到
0
条评论
首页
栏目
默认分类
前端技术
页面
关于我的
文章归档
友情链接
随机进入
搜索到
1
篇与
的结果
2023-07-24
node中间件的使用
定义一个中间件// 导入 express 模块 const express = require('express') // 创建 web 服务器 const app = express() // 定义中间件 const mv = function(req, res, next) { console.log('触发了中间件!') next() } // 全局注册中间件 app.use(mv) // 启动 web 服务器 app.listen(80, () => { console.log('express server running at http://127.0.0.1') })简化形式// 导入 express 模块 const express = require('express') // 创建 web 服务器 const app = express() // 定义一个全局中间件简化形式 app.use((req, res, next) => { console.log('这是最简单的中间件函数') next() }) // 启动 web 服务器 app.listen(80, () => { console.log('express server running at http://127.0.0.1') })中间件的作用多个中间件之间,共享同一份 req 和 res。基于这样的特性,我们可以在上游的中间件中,统一为 req 或 res 对象添加自定义的属性或方法,供下游的中间件或路由进行使用// 导入 express 模块 const express = require('express') // 创建 web 服务器 const app = express() // 定义一个全局中间件简化形式 app.use((req, res, next) => { // 获取请求到达服务器的时间 const time = Date.now() // 为 req 对象,挂载自定义属性,从而把时间共享给后面的所有路由 req.startTime = time next() }) app.get('/', (req, res) => { res.send('这是首页' + req.startTime) }) // 启动 web 服务器 app.listen(80, () => { console.log('express server running at http://127.0.0.1') })定义多个中间价可以使用 app.use() 连续定义多个全局中间件。客户端请求到达服务器之后,会按照中间件定义的先后顺序依次进行调用// 导入 express 模块 const express = require('express') // 创建 web 服务器 const app = express() // 定义一个全局中间件简化形式 app.use((req, res, next) => { console.log('第一个中间件') next() }) app.use((req, res, next) => { console.log('第二个中间件') next() }) app.get('/', (req, res) => { res.send('这是首页') }) // 启动 web 服务器 app.listen(80, () => { console.log('express server running at http://127.0.0.1') })局部生效中间件不使用 app.use() 定义的中间件,叫做局部生效的中间件// 导入 express 模块 const express = require('express') // 创建 web 服务器 const app = express() // 定义一个中间件 const mw1 = (req, res, next) => { console.log('调用了局部中间件') next() } // mw1 中间件只在当前路由中生效 app.get('/', mw1, (req, res) => { res.send('这是首页') }) app.get('/user', (req, res) => { res.send('这是用户界面') }) // 启动 web 服务器 app.listen(80, () => { console.log('express server running at http://127.0.0.1') })调用多个局部中间件// 导入 express 模块 const express = require('express') // 创建 web 服务器 const app = express() // 定义一个中间件 const mw1 = (req, res, next) => { console.log('调用了第一个局部中间件') next() } const mw2 = (req, res, next) => { console.log('调用了第二个局部中间件') next() } // mw1, mw2 中间件只在当前路由中生效 // app.get('/', mw1, mw2, (req, res) => { // res.send('这是首页') // }) // 当调用多个中间件时,可以将他们写成一个数组的形式 app.get('/', [mw1, mw2], (req, res) => { res.send('这是首页') }) app.get('/user', (req, res) => { res.send('这是用户界面') }) // 启动 web 服务器 app.listen(80, () => { console.log('express server running at http://127.0.0.1') })
2023年07月24日
26 阅读
0 评论
0 点赞