无法在nodejs express中将类调用为函数

时间:2017-10-03 14:08:19

标签: javascript node.js express ecmascript-6

您好我正在尝试按照ES6语法创建我的node.js应用程序的中间件。

index.js

export default class Middleware {
  constructor() {
    //do nothing
  }

  fun1 = (req, res, next) => {
    console.log("------------------------------------");
    console.log("AAa");
    console.log("------------------------------------");
    next();
  };

  fun2 = (req, res, next) => {
    console.log("------------------------------------");
    console.log("AAa");
    console.log("------------------------------------");
    next();
  };
}

app.js

import Middleware from ".index";
app.use(Middleware);

我收到错误无法将类作为函数调用。有谁知道出了什么问题?

1 个答案:

答案 0 :(得分:4)

Express app#use需要具有以下签名的函数:

function(req, res, next) {

要使其有效,您需要执行以下操作:

  1. 创建Middleware class。
  2. 的实例
  3. 为班级中的每个功能注册中间件。
  4. 示例:

    let middleware = new Middleware();
    
    app.use(middleware.func1);
    app.use(middleware.func2);