Skip to content

Latest commit

 

History

History
68 lines (51 loc) · 2.09 KB

middleware.md

File metadata and controls

68 lines (51 loc) · 2.09 KB
group name title index
guide
middleware
开发中间件
3

开发一个中间件

通常,应该先看看是否已经存在满足您需求的中间件,查看「推荐的中间件」,可以通过如下命令:

$ dn middleware [keyword]

示例:

$ dn middleware webpack
? Found 3 templates (Use arrow keys)
❯ 1. webpack        : 基于 Webpack 的构建中间件(无缝升级)
  2. webpack2       : 基于 Webpack2 的构建中间件
  3. webpack1       : 基于 Webpack1 的构建中间件

通过「上下方向键」可以选择指定中间件,然后「回车」可以查看对应中间件的在线使用说明。

当您决定要开发一个新的中间件时,您可以通过 dn init 命令,然后选择「中间件工程模板」即可快速创建一个「中间件」,如下:

$ dn init
? Found 3 templates (Use arrow keys)
  1. front      : Front Project Template
  2. node       : Node.js Project Template
❯ 3. middleware : Middleware Project Template

Dawn 的中间件和 Koa 中间件类似,中间件核心基础代码结构如下:

/**
 * 这是一个标准的中间件工程模板
 * @param {object} opts cli 传递过来的参数对象 (在 pipe 中的配置)
 * @return {AsyncFunction} 中间件函数
 */
module.exports = function (opts) {

  //外层函数的用于接收「参数对象」
  //必须返回一个中间件处理函数
  return async function (next) {

    //在这里处理你的逻辑
    this.console.log('This is an example');

    //next 触发后续执行
    //如果需要在后续中间件执行完成再做一些处理
    //还可以 await next(); 并在之后添加逻辑
    next();

  };

};

中间件是一个标准的 npm 包,但是要求必须命名为 dn-middleware-xxx 这样的格式,开发完成后直接通过 npm publish 发布就行了。

提交到推荐列表

如果希望将你的中间件添加到「推荐中间件列表」,请 fork https://alibaba.github.io/dawn 后,编辑 docs/middleware.yml,然后,发起一个 Pull Request 就行了。