我總是使用if (!result)
來捕獲結果爲空時,但由於某種原因,這只是在這裏不工作?!?mongodb的結果爲空,但是如果(!結果)沒有捕獲它
exports.getDiscount = function(req, callback) {
var discountModel = require('../models/discountModel');
var discountTable = mongoose.model('discountModel');
discountTable.findOne (
{ _id: req.body.discount }
,function (err, data) {
if (err) {callback({ error:true, err:new Error('findDiscount: ' + err) })};
console.log("data " + data)
console.log("json: " + JSON.stringify(data, null, 4));
if (!data) {
callback({ error:true, err:"NOT FOUND: " + req.body.discount + " was not found" })
}
console.log("WHY ARE YOU NOT STOPPING?!?!")
console.log("data " + data)
console.log("json: " + JSON.stringify(data, null, 4));
if (Math.round(new Date().getTime()/1000) > data.expires) {
callback({ error:true, err:"EXPIRED: " + new Date(data.expires*1000).toDateString() + " " })
}
callback({ error:false, percent:data.percent });
});
}
這是我的控制檯輸出
爲什麼在if (!data) {
回調不要再追這個空值?
恩,可能會返回*? –
@Jonasw呀,我認爲回調將是一樣的回報,我想不是:-) – torbenrudgaard
順便說一句。您接受的答案不正確。回調參數是'callback(err,response)'(通用術語表示兩個參數),問題是你只傳入一個** single **參數,它被解釋爲'err'部分。你最後一次調用應該是'callback(null,percent:data.percent);'所以'err'被認爲是'null','response'是實際發回的數據。 –