最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

布尔未设置为true的node.js

运维笔记admin16浏览0评论

布尔未设置为true的node.js

布尔未设置为true的node.js

我有这样的代码:在文件的开头我初始化变量(VAR loginState = FALSE;)为什么执行console.log给我假,但我把它改为true

try {
        const client = new SimpleGraphClient(tokenResponse.token);
        const me = await client.getMe();

            sql.connect(config, async function (err){
                if (err) console.log(err);
                var request = new sql.Request();
                request.query(`SELECT * FROM tradebot.accounts WHERE username='${username}' AND password='${password}'`, async function (err, recordset){
                    if (err) console.log(err);
                    console.log(recordset);
                    if (recordset.recordset.length == 1) {
                        loginState = true;
                    } else {
                        loginState = false;
                    }
                    sql.close();
                });
            });
            console.log(loginState);
            if (loginState == true) {
                await turnContext.sendActivity({
                    text: 'Work',
                    attachments: [CardFactory.adaptiveCard(mainmenu)]
                });
            } else {
                await turnContext.sendActivity({
                    text: 'Dont work',
                    attachments: [CardFactory.adaptiveCard(internal_login)]
                });
            }            
    } catch (error) {
        throw error;
    }
回答如下:

究其原因是因为你设置一个回调函数里面的数值变量:你必须等待你的查询结果。您呼叫的查询的方式是不可行的。

看看 - https://www.npmjs/package/mysql2

也改变这一部分 -

sql.connect(config, async function (err){
   if (err) console.log(err);
    var request = new sql.Request();
    request.query(`SELECT * FROM tradebot.accounts WHERE username='${username}' AND password='${password}'`, async function (err, recordset){
     if (err) console.log(err);
     console.log(recordset);
      if (recordset.recordset.length == 1) {
        loginState = true;
      } else {
        loginState = false;
      }
     sql.close();
    });
 });

更改为是这样的:

 try{
     let connection = await sql.connect(config);
     let query1 = await connection.query(`SELECT * FROM tradebot.accounts WHERE username='${username}' AND password='${password}'`);

      if (query1[0].recordset.length == 1) {
           loginState = true;
       } else {
           loginState = false;
       }
 }catch (err){
    // do something here
 }

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论