一个关于我似乎无法正常工作的简单问题...

我正在一个名为limiter.js的单独文件中为我的API开发基本的速率限制器。我希望每个调用都可以通过限制器运行,因此我将其包含在server.js文件中。

我正在使用Redis来存储请求,因此我也需要传递Redis的引用。

//server.js
var limiter = require('./limiter')(app,redisClient);
app.use(limiter.check());


我如何也可以将reqres用于文件。

在我的limiter.js文件中,我有:

module.exports = function (app, redisClient) {
  var limiter = {};

  limiter.check = function (req, res) {
    console.log(req) //ERROR: req object does not exist
    var ts = moment().unix();
    var ip = req.connection.remoteAddress;
    var key = ip + ":" + ts;
    ...
  };

  return limiter;
};


但是req对象不存在

最佳答案

app.use方法需要一个方法,但是您正在尝试调用limiter.check并传递结果。删除多余的括号,它应该可以工作。

关于node.js - Express.js-文件分离和传递参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27623460/

10-10 18:58