如何执行IF语句然后继续其他代码

时间:2017-01-30 08:14:59

标签: javascript node.js express

我有一段代码需要检查用户注册是否来自管理员页面。如果是,它会将用户角色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');

我正在使用此方法但是当用户从管理页面注册时,控制台日志未运行。我怎么能这样做?

1 个答案:

答案 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处理程序之后。

希望这有帮助