我希望得到一些有關以下問題的幫助。我正在編寫我的bsc論文,這部分代碼將負責註冊用戶。 (我實際上是nodejs的新手)。我也使用快遞和貓鼬。在NodeJS中發送不同的POST響應
我想處理請求數據,並檢查一些錯誤,首先我想檢查是否所有字段都存在,其次如果有人已經註冊了此電子郵件地址。
根據錯誤(或成功),我想發送不同的答覆。如果缺少一個字段,那麼400錯誤的請求(如果用戶存在),然後是409衝突,如果一切正常,則爲200 OK。但我只想做回調,如果沒有錯誤,但我有點卡在這裏...我得到的錯誤發送後無法設置標頭,這實際上很明顯,因爲JS繼續處理代碼即使設置了響應。
app.post('/register', function (req, res) {
var user = new User(req.body);
checkErrors(req, res, user, registerUser);
});
var registerUser = function(req, res, user){
user.save(function(err, user){
if (err) return console.log(err);
});
res.sendStatus(200);
};
var checkErrors = function(req, res, user, callback){
var properties = [ 'firstName', 'lastName', 'email', 'password', 'dateOfBirth' ];
for(var i = 0; i < properties.length; i++){
if(!req.body.hasOwnProperty(properties[i])){
res.status(400).send('field ' + properties[i] + ' not found');
}
}
var criteria = {
email: req.body.email
};
User.find(criteria).exec(function(err, user){
if(user.length > 0){
res.status(409).send('user already exists');
}
});
callback(req, res, user);
};
非常感謝,這非常有用! – Martin