rooms.js - >控制器類客房端點什麼可以是一個更好的方式來處理從nodejs項目中的控制器發送響應?
router.get('/:roomid/fight/verify', function(req, res) {
roomModel.authenticateUserForFight(req.params.roomid, req.query.otp, res);
});
roomModel - >的房間模型類
//authenticate user based on otp provided on client side
exports.authenticateUserForFight = function(roomid, otp, res) {
db.query('select * from room where roomid=?', [roomid], function(error, rows) {
if (rows.length == 0) {
console.log("otp does not exist in db for room:" + roomid);
} else if (rows.length == 1) {
var otpInDb = rows[0].otp.toString();
if (otp == otpInDb) {
console.log("User is authorised");
res.status(200);
res.send("User is authorised");
} else {
console.log("User is unauthorised");
res.status(401);
res.send("User not authorised");
}
}
});
}
這段代碼工作正常,但有沒有更好的方式來發送響應客戶端而不是將res對象傳遞給模型類並在那裏設置狀態和響應消息?我傳遞res對象的原因是因爲在控制器中執行res.status和res.send會導致問題,因爲db調用是異步的。建議一些更好的做法來處理這種情況。
謝謝。感謝幫助 – madcolonel10