错误:Route.post()需要回调函数,但在Route处有[对象未定义]。(匿名函数)[作为帖子]

时间:2016-06-22 14:29:29

标签: javascript node.js express

我正在尝试确认用户是否有管理员权限。当我从路由器调用verifyAdminUser函数时,我收到此错误:

  

错误:Route.post()需要回调函数,但在Route处有[对象未定义]。(匿名函数)[作为帖子]

这是我的路由器文件中的电话

.post(Verify.verifyAdminUser, function (req, res, next) {})

和我的验证功能

verifyAdminUser = function (req, res, next) {}

任何人都可以帮我吗?我读过许多类似的问题,但没有一个有帮助。

2 个答案:

答案 0 :(得分:1)

确保声明Verify.verifyAdminUser!== void 0

Express执行此操作,handlepost()的每个参数:

 if (typeof handle !== 'function') {
    var type = toString.call(handle);
    var msg = 'Route.' + method + '() requires callback functions but got a ' + type;
    throw new Error(msg);
  }

答案 1 :(得分:0)

我解决了这个问题。我的require语句没有指向正确的路径

var Verify = require('../verify');

但这并没有告诉我为什么它适用于此

.post(Verify.verifyOrdinaryUser, function (req, res, next) {}

但不是这个

.post(Verify.verifyOrdinaryUser, Verify.verifyAdminUser, function (req, res, next) {}

当两个函数都在同一个文件中时