0
我有一條非常基本的POST路由,可以從給定數據中創建一個新用戶。如何在Express中失敗的Mongoose驗證後向客戶端返回錯誤消息
這裏是我如何保存:
app.post('/create', function(req, res){
var firstUser = new models.User(req.body);
firstUser.save();
});
我的貓鼬用戶架構有幾個驗證選項,它的工作。如果我傳遞了錯誤的數據,則驗證失敗並且不會創建用戶。
但存在一個問題:Mongoose的save()函數是異步的,那麼現在如何讓客戶端的驗證失敗?
後期功能將在那時完成。
啊,我以爲一旦post()函數完成,你就無法再向客戶端發送任何東西了。 – skerit
實際上,這是對res.end()函數的調用。 res.send()在響應中添加一些內容,然後調用這個函數。 – Frank
最好使用next來處理錯誤,因爲這就是它的原因。它還會將所有錯誤處理放在一箇中間件處理程序中,而不是在整個項目中重複自己。 – Pickels