我正在尝试确认用户是否有管理员权限。当我从路由器调用verifyAdminUser
函数时,我收到此错误:
错误:Route.post()需要回调函数,但在Route处有[对象未定义]。(匿名函数)[作为帖子]
这是我的路由器文件中的电话
.post(Verify.verifyAdminUser, function (req, res, next) {})
和我的验证功能
verifyAdminUser = function (req, res, next) {}
任何人都可以帮我吗?我读过许多类似的问题,但没有一个有帮助。
答案 0 :(得分:1)
确保声明Verify.verifyAdminUser
并!== void 0
Express执行此操作,handle
是post()
的每个参数:
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) {}
当两个函数都在同一个文件中时