passport.use('local.signup', new Localstrategy({
usernameField: 'email',
passwordField: 'password',
roleField: 'role',
passReqToCallback: true
}, function(req, email, password, role, done) {
req.checkBody('email', 'Invalid Email').notEmpty().isEmail();
req.checkBody('password', 'Invalid Password ').notEmpty().isLength({min:4});
req.checkBody('role', 'Invalid Password').notEmpty();
var errors = req.validationErrors();
if (errors) {
var messages = [];
errors.forEach(function(error) {
messages.push(error.msg);
});
return done(null, false, req.flash('error', messages));
}
// what the...
User.findOne({
'email': email
}, function(err, user) {
if (err) {
return done(err);
}
if (user) {
return done(null, false, {
message: 'Email is already in use.'
});
}
var newUser = new User();
newUser.email = email;
newUser.password = newUser.encryptPassword(password);
newUser.role = role;
newUser.save(function(err, result) {
if (err) {
return done(err);
}
return done(null, newUser);
});
});
}));
回答
我不相信這個設置會做任何事:
function(req, email, password, role, done) {
:
roleField: 'role',
您可以通過這個改變你的函數的參數修復錯誤
對此:
function(req, email, password, done) {
events.js:163 throw er; //未處理的 '錯誤' 事件 ^ 類型錯誤:做不是一個函數 在/Users/ZL/Desktop/nodeJs/debble/passport_config/passport.js:54:20 在/用戶/ ZL /桌面/的NodeJS /debble/node_modules/mongoose/lib/model.js:3932:16 –
導致我的用戶模式有角色,所以也許角色是必要的,我很困惑,爲什麼'完成不是一個函數'是關於Promise ?希望你能幫助我,我幾乎掙扎了一天 –
@conleywang它與promise沒有任何關係。該函數將傳遞4個參數,第四個參數是'done'回調。通過添加一個'role'參數,你可以將'done'移動到第5個,這將不存在。參數由位置決定,而不是名稱。如果你需要額外的信息,比如角色,你需要自己從'req'對象中獲取它。 – skirtle
- 1. 護照 - 類型錯誤:passport.authenticate不是一個函數
- 2. express4護照desirializeuser類型錯誤:十六進制不是一個函數
- 3. 護照扔user.authenticate不是一個函數
- 4. 類型錯誤:m.easing [this.easing]是不是一個函數錯誤
- 5. $ sce.trustAsHtml返回錯誤:類型錯誤:html.indexOf不是一個函數
- 6. 類型錯誤:錯誤#1006:值不是一個函數
- 7. 錯誤類型錯誤:_co.onBlueprintAdded不是一個函數
- 8. 節點MSSQL「類型錯誤:req.query不是一個函數」錯誤
- 9. 導出類結果「類型錯誤:......是不是一個函數」
- 10. 角2:AOT類型錯誤:Base64是不是一個函數
- 11. 類型錯誤:未定義是不是一個函數
- 12. Node.js |類型錯誤:[...]是不是一個函數
- 13. 「類型錯誤:v2.email是不是一個函數」
- 14. gruntfile.js [類型錯誤:未定義是不是一個函數]
- 15. 類型錯誤:Complaint.get是不是一個函數
- 16. 異步類型錯誤:CB是不是一個函數
- 17. 離子建築類型錯誤:env.runcmd是不是一個函數
- 18. 類型錯誤:p.easing [this.easing]是不是一個函數
- 19. Magento的:類型錯誤:N是不是一個函數
- 20. jquery.payments類型錯誤:未定義是不是一個函數
- 21. 類型錯誤:這$組是不是一個函數
- 22. 遺漏的類型錯誤:方法是不是一個函數
- 23. 類型錯誤:$(...)RSS是不是一個函數
- 24. 未捕獲的類型錯誤:undefined是不是一個函數
- 25. 類型錯誤:數組[我] .CALL是不是一個函數時出現錯誤
- 26. 完成並不是護照js中的函數錯誤
- 27. 遺漏的類型錯誤:數量不是一個函數
- 28. Firebase類型錯誤:ref.transaction不是函數
- 29. Javascript類型錯誤:xxx不是函數
- 30. Javascript類型錯誤不是函數
是在字符串部分的那些換行符部分你的原始代碼? – Xufox