如何新建一个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文章。