javascript - NodeJS 条件决策

标签 javascript node.js

我正在尝试在 NodeJS 中做一个简单的 if-else。

根据有关语法的信息,它看起来是正确的。

但是无论如何,如果 block 不起作用。 msg 变量值都没有更新。

代码:

sql.connect(config, function(err) {
console.log(err)
var r = new sql.Request();
r.input('gc', sql.VarChar, gcode);
r.input('ingt',sql.VarChar, gtype);
r.input('incf',sql.VarChar,gconfig);
r.input('ingp',sql.VarChar, gprovider);
r.input('inld',sql.DateTime2, launchdate)
r.input('in_activefrom',sql.DateTime2, date_activeFrom)
r.input('in_activeto',sql.DateTime2, date_activeTo)
r.multiple = true;

var rec_count = 0;
r.query("select * from md.GameMasters WHERE gameCode=@gc",function(err, result){
    rec_count = result['recordset'].length;
    console.log('Existing Records: ' + rec_count)
})

if(Number(rec_count) >0){
    console.log('Multiple record exist')
    msg = "Record Exist in Database";
}
else{
    r.query("INSERT INTO md.GameMasters(gameCode,gtype,config,grovider,launchdate,activefrom,activeto,recordEntryOn) VALUES(@gc,@ingt,@incf,@ingp,@inld,@in_activefrom,@in_activeto,getdate())",function(err,result){
        console.log(result['rowsAffected'][0])
        console.log('Record Inserted')
    })
    msg = 'Record Added';
}

});

想知道哪个部分出了问题。

最佳答案

由于 query() 是异步的,您的 if...else 在变量更新之前执行,请将其包含在回调函数中:

......
r.query("select * from md.GameMasters WHERE gameCode=@gc",function(err, result){
  rec_count = result['recordset'].length;
  console.log('Existing Records: ' + rec_count);

  if(Number(rec_count) >0){
    console.log('Multiple record exist')
    msg = "Record Exist in Database";
  }
  else{
    r.query("INSERT INTO md.GameMasters(gameCode,gtype,config,grovider,launchdate,activefrom,activeto,recordEntryOn) VALUES(@gc,@ingt,@incf,@ingp,@inld,@in_activefrom,@in_activeto,getdate())",function(err,result){
        console.log(result['rowsAffected'][0])
        console.log('Record Inserted');
        msg = 'Record Added';
    });
  }
});
.....

关于javascript - NodeJS 条件决策,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59191825/

相关文章:

javascript - 具有完整时间设置的嵌套 JQuery 动画

javascript - 谷歌电子表格如何在不改变焦点的情况下检测单元格点击

javascript - 如何捕获UWP Web应用程序的屏幕

javascript - NodeJS |循环 JSON 给出 undefined

node.js - 从其他容器启动和停止 docker 容器

javascript - 如何使用 npm 库提供异步集成测试?

javascript - NPM 异步系列问题

javascript - AngularJS ng-if 带有 ng-select 事件的隐藏元素不起作用

javascript - node.js - 代码保护?

javascript - package.json 中指定的依赖项