egg.js 学习之 中间件使用
2024-09-01 15:14:44
1.在框架和插件中使用中间件
编写中间件
我们先来通过编写一个简单的中间件,来看看中间件的写法。
// app/middleware/middlewareOne.js
// app/middleware/middlewareOne.js
module.exports = (options, app) => {
return async function middlewarreone(ctx, next) {
const url = ctx.request.url;
await next();
ctx.body = `获取到的ip是:${url}`;
}
};
配置
// config/config.default.js
exports.middleware = ['middlewareOne']; // 数组的顺序为中间件执行的顺序 请求会执行 : 获取到的ip是:/data
router 中使用中间件
以上方式配置的中间件是全局的,会处理每一次请求。 如果你只想针对单个路由生效,可以直接在 app/router.js
中实例化和挂载,如下:
'use strict'; /**
* @param {Egg.Application} app - egg application
*/
module.exports = app => {
const {
router,
controller
} = app;
const isUrl = app.middleware.middlewarreone({params: '888',});
router.get('/', controller.home.index);
router.post('/login', controller.home.login);
router.post('/data',isUrl, controller.data.index);
router.post('/upload', controller.upload.upload); router.get('/search', controller.data.search);
};
发送请求 同样会执行 结果:/data
最新文章
- 根据url地址单个或批量下载图片
- Linq 查询结果 可能遵循 2 º,2¹,2 ²,......增长计算
- Request.MapPath和ServerMapPath
- php生成对象的研究
- phpstorm 实用快捷键 和 注释
- [Leetcode][JAVA] Valid Palindrome
- iOS开发~UI布局(三)深入理解autolayout
- iOS - UITabBarController
- Hibernate的配置文件解析
- 操作Action
- protel99与win7兼容问题的解决方案
- 4日6日--ES5新增数组方法
- [Swift]LeetCode722. 删除注释 | Remove Comments
- Jmeter性能测试之Monitor监控(SSHMon Samples Collector)
- 淘宝客订单api处理优化
- 线程、进程、协程 异步io
- java输入输出流(I/O)总结
- HDU 5988 Coding Contest(费用流+浮点数)
- MySQL innodb中各种SQL语句加锁分析
- Redux入门学习
热门文章
- [Xcode 实际操作]八、网络与多线程-(17)使用网址会话对象URLSession向远程服务器上传图片
- redis-分布式锁2
- luoguP2408不同子串个数
- PAT甲级——1135 Is It A Red-Black Tree (30 分)
- LocalBroadcastManager
- swiper 解决动态加载数据滑动失效的问题
- 反射和__setattr__,__delattr__,__getattr__用法
- java中代码执行顺序
- Lock简介
- 关于Mybatis的一点小记录(parameterType)