2016-06-22 56 views
1

我想確認用戶是否具有管理員權限。當我打電話verifyAdminUser功能從我的路由器我得到這個錯誤:錯誤:Route.post()需要回調函數,但得到[對象未定義]在路由。(匿名函數)[作爲帖子]

Error: Route.post() requires callback functions but got a [object Undefined] at Route.(anonymous function) [as post]

這裏是我的路由器文件

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

我的電話,我的驗證功能

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

誰能幫助我和這個?我已經閱讀了許多類似的問題,但他們都沒有幫助。

+0

這裏是我的功能: –

+0

exports.verifyAdminUser = function(req,r es,next){ if(req.decoded._doc.admin!='true'){ var err = new錯誤('您不是管理員用戶!'); err.status = 401; return next(err); } else { return next(); } }; –

回答

1

確保Verify.verifyAdminUser聲明和!== void 0

快速做到這一點,與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); 
    } 
+0

好的我在我的驗證文件中有以下功能,但只要更改名稱,我就會收到一個錯誤,說它不是一個函數,而是一個對象。 作品: exports.verifyOrdinaryUser = function(req,res,next){} }; does not work: exports.verifyAdminUser = function(req,res,next){} }; –

+0

這很奇怪!你有一個要點嗎? – malix

0

嗯,我解決了這個。我需要聲明並沒有指向正確的路徑

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

但是,這並沒有告訴我,爲什麼它的工作對這個

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

但不是這個

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

當兩種功能在同一個文件

相關問題