我正在学习NodeJS,目前我的第一个项目是基于订阅的网站。
我需要一个条件来决定一个事务是否在其btcTx属性中具有值。这样做是因为当用户创建新事务时,会创建BTC事务并将其添加到事务.btcTx属性中。用户按F5后,它不应创建新事务,而应使用已创建的事务。 我的函数需要一个参数值为ID。
function tranHasBTC(tranId) {
Transaction.findById(tranId,function(err,foundTr){
if(err){
console.log(err);
} else {
return (foundTr.btcTx != undefined);
}
});
}
该函数应该在mongoDB数据库中查看并查看在参数内传递的事务是否在btcTx处具有值。
然后在这里我有一个应该依赖于上层函数返回值的函数
router.get("/btc/:txId", function (req, res) {
var tranId = req.params.txId;
var tranTrue = tranHasBTC(tranId);
if (!tranTrue) {
//add new transaction
} else {
//find transaction in database and load it from there
}
});
问题在于每当
var tranTrue = tranHasBTC(tranId);
被调用,它返回undefined
我假设我需要使用某种异步函数来等待返回true或false的方法,我已经尝试了承诺但是我无法完成它,这就是为什么我是发布在这里。