我正在使用NodeJS和護照讓用戶創建一個帳戶,然後才能看到他們剛剛參加的測驗的結果。我的挑戰是我需要確認用戶名在頁面刷新前可用,因爲如果發生這種情況,用戶將失去結果。Node.js - 檢查用戶是否存在
再次:我需要驗證用戶名不刷新之前。
我想我很近,但它不工作。我將如何更改我的代碼以應對這一挑戰?
當前如果使用用戶名,它會在嘗試創建一個帳戶時返回一個錯誤,並且用戶在/ failpage上結束,如下所示。
app.post('/quiz', usernameToLowerCase, emailToLowerCase, function(req, res) {
User.findOne({
username: req.body.username
}, function(err, user) {
if (err) {
alert(err)
if (user) {
alert('this username is already taken. Please choose another.')
console.log('there was a user');
return false;
}
}
});
var user = new User({
username: req.body.username,
email: req.body.email,
password: req.body.password,
})
user.save(function(err) {
console.log('this is the problem' + ' ' + err)
if (err) {
return res.redirect('/failpage')
}
req.logIn(user, function(err) {
if (err) {
console.log(err);
}
console.log('all looks good')
res.redirect('/results');
});
});
});
您需要在回調 – SLaks
運行謝謝@SLaks。在user.save回調? – AndrewLeonardi
請格式化您的代碼以使其可讀。如果您能夠輕鬆閱讀/理解您的代碼,您就更有可能獲得幫助。 – jfriend00