无法读取未定义的表达中间件的“ get”属性

时间:2018-09-09 17:00:49

标签: node.js express

预先为标题道歉,我真的不知道该如何总结。

尝试运行我的Express应用时出现以下错误

TypeError: Cannot read property 'get' of undefined
    at authHandler (file:///api/src/authUtil.mjs:34:19)
    at file:////api/src/routes/application.mjs:6:12
    at ModuleJob.run (internal/modules/esm/module_job.js:96:12)

authHandler是一个看起来像这样的函数:

export function authHandler (req, res, next) {
  var token = req.get('Authorization')
  //shortened
  next()
}

正在application.mjs中从Express路由器中调用它,如下所示:

router.use(authHandler())(是,已导入)

但是,由于某些原因,req显示为未定义。

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

您正在呼叫处理程序并将其结果注册到路由器。 您实际要做的是注册处理程序本身:router.use(authHandler)

编辑:发生错误的原因是您不带任何参数调用authHandler。无论如何,您根本不需要调用它。