如何新建一个thinkjs中间件middleware?
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
在苏南大叔的上一篇文章中,我们学习了如何初始化一个thinkjs
项目。本篇文章中,我们将继续学习到,如何新建一个thinkjs
的middleware
。thinkjs
的中间件使用起来非常简单,但是要想深入理解的话,还是需要有一定的node
的基本功的。
命令行新建middleware
thinkjs middleware <middleware_name>
例如,苏南大叔想新建一个名字为test
的middleware
,执行的命令就是这样的:
thinkjs middleware test
这条语句会在src/middleware/
目录下面,生成一个test.js
。默认的代码如下:
module.exports = (options, app) => {
return (ctx, next) => {
return next();
};
};
当然,如果不执行这个脚手架命令,直接在对应位置生成对应内容的文件,也是可以的。
配置中间件是否生效
这个test
的中间件,如果想要生效,需要在src/config/middleware.js
里面进行配置一下才会生效。下面演示的是生效的过程,我们需要修改一下src/config/middleware.js
这个文件,增加如下代码在controller
字样的前面。
注意:
- 一定要在
controller
字样的前面,否则,不会执行是大概率的事件。(具体什么情况下会执行,苏南大叔会在以后的文章中说明。) middleware.js
里面的各个中间件,是有先后顺序的区别的。所以,新的middleware
的放置位置需要仔细考虑清楚。
//......
module.exports = [
//......
{
handle: 'test',
//enable: think.env === 'development',
//match: '/testurl',
//match: ctx => { return true;}
//options:{}
},
'controller'
];
参数说明
中间件的设置里面,参数如下:
handle
,这个参数是必须填写的,表示的是使用哪个中间件。enable
,默认是开启状态true
,当然也可以根据表达式改写为false
。match
,支持路由匹配,也支持函数匹配。options
,是传入到test.js
这个具体中间件逻辑里面的。
这里的三个可选参数的用法,将在后续文章中给出。
关联文章
- 《如何初始化一个thinkjs项目》 https://newsn.net/say/thinkjs-demo-init.html
结语
本文中,苏南大叔介绍了thinkjs里面的middleware的初步简单用法。更深层次的用法,请关注苏南大叔的后续thinkjs
文章。
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。