如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接信息。

在苏南大叔的上一篇文章中,我们学习了如何初始化一个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();
  };
};

如何新建一个thinkjs的middleware - 000

当然,我们不执行这个脚手架命令,直接在对应位置生成对应内容的文件,也是可以的。

配置中间件是否生效

这个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'
];

如何新建一个thinkjs的middleware - 001

参数说明

中间件的设置里面,参数如下:

  • handle,这个参数是必须填写的,表示的是使用哪个中间件。
  • enable,默认是开启状态true,当然也可以根据表达式改写为false。
  • match,支持路由匹配,也支持函数匹配。
  • options,是传入到test.js这个具体中间件逻辑里面的。

这里的三个可选参数的用法,将在后续文章中给出。

如何新建一个thinkjs的middleware - 002

关联文章

结语

本文中,苏南大叔介绍了thinkjs里面的middleware的初步简单用法。更深层次的用法,请关注苏南大叔的后续thinkjs文章。https://newsn.net/tag/thinkjs/

欢迎转载传播本篇原创文章,转载请保留链接及作者信息。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。