我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

在苏南大叔的上一篇文章中,我们学习了如何初始化一个thinkjs项目。本篇文章中,我们将继续学习到,如何新建一个thinkjsmiddlewarethinkjs的中间件使用起来非常简单,但是要想深入理解的话,还是需要有一定的node的基本功的。

苏南大叔:如何新建一个thinkjs中间件middleware? - thinkjs-middleware
如何新建一个thinkjs中间件middleware?(图4-1)

命令行新建middleware

thinkjs middleware <middleware_name>

例如,苏南大叔想新建一个名字为testmiddleware,执行的命令就是这样的:

thinkjs middleware test

这条语句会在src/middleware/目录下面,生成一个test.js。默认的代码如下:

module.exports = (options, app) => {
  return (ctx, next) => {
    return next();
  };
};

苏南大叔:如何新建一个thinkjs中间件middleware? - 000
如何新建一个thinkjs中间件middleware?(图4-2)

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

配置中间件是否生效

这个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
如何新建一个thinkjs中间件middleware?(图4-3)

参数说明

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

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

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

苏南大叔:如何新建一个thinkjs中间件middleware? - 002
如何新建一个thinkjs中间件middleware?(图4-4)

关联文章

结语

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

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

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   thinkjs    middleware