最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

当我尝试将中间件函数导出到module.exports对象时,为什么会出现“下一个不是函数”?

运维笔记admin20浏览0评论

当我尝试将中间件函数导出到module.exports对象时,为什么会出现“下一个不是函数”?

当我尝试将中间件函数导出到module.exports对象时,为什么会出现“下一个不是函数”?

我有一个中间件函数写在我的logger.js模块中,然后我导入到app.js并使用

// ------ File : logger.js ------ //

function log(req, res, next) {
  console.log('Logging details ... ');
  next();
}

module.exports = log;

// ------ File : app.js -------- //

const logger = require('./logger');

app.use(logger);
回答如下:
app.use(logger.log());

这将立即调用logger.log,不传递任何参数。无论logger.log返回什么,都将传递到app.use。由于您没有传入任何参数,因此接下来是未定义的,从而导致该异常。

相反,做:

app.use(logger.log);

这会将logger.log传递给app.use。稍后,将调用logger.log,传入正确的参数。

发布评论

评论列表(0)

  1. 暂无评论