我总是使用if (!result)
来捕获结果为空时,但由于某种原因,这只是在这里不起作用?!
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) {
的回调没有捕获此空值?
答案 0 :(得分:1)
代码中没有任何内容在if (!data) { ... }
执行后停止执行。 (或者,就此而言,if (err) { ... }
等)
在调用return false;
函数
callback()
或其他内容
如果你在console.log()
块中抛出if
,它应该显示代码正在进入块。