我有一段代码需要检查用户注册是否来自管理员页面。如果是,它会将用户角色admin更改为true然后继续到它下面的代码,如果它不是来自管理页面,那么if语句中的代码将不会运行,但它下面的代码将运行
if (userData.admin === true) {
users.findOneAndUpdate({ username: userData.username }, { $set: { admin: true } }, { new: true })
.exec(function (err) {
if (err) throw err;
});
}
console.log('This should execute');
我正在使用此方法但是当用户从管理页面注册时,控制台日志未运行。我怎么能这样做?
答案 0 :(得分:0)
在我看来,你错过了对async" findOneAndUpdate"的回调。因为你只处理"错误"而不是来自" findOneAndUpdate"代码不会从初始if语句中转义出来。所以console.log不会运行,因为浏览器正在等待回调。只需添加一个回调到" findOneAndUpdate"把它放在" err" if语句和console.log应该运行。
BILL_OF_LADING WAYBILL SSI_CUST_TRANS CHARGE_TYPE NET_FREIGHT_CHARGES AMOUNT
618852 618852 3574296 SPECIAL DELIVERY 32.500000 40
618852 618852 3574296 FUEL SURCHARGE 32.500000 4
618852 618852 3574296 NULL 32.500000 NULL
618852 618852 3574296 NULL 32.500000 NULL
618852 618852 3574319 SPECIAL DELIVERY 32.500000 40
618852 618852 3574319 FUEL SURCHARGE 32.500000 4
618852 618852 3574319 NULL 32.500000 NULL
618852 618852 3574319 NULL 32.500000 NULL
注意" findOneAndUpdate"中的回调。功能," res(true)"在err处理程序之后。
希望这有帮助