亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我如何從子函數中獲取價值

我如何從子函數中獲取價值

當年話下 2023-08-18 16:55:37
var checkAcount = (usr, pass) => {     var sql = "SELECT * FROM account WHERE userName = '" +usr+"'" ;    con.query(sql, (err, result) => {      if(err) throw err;      if(result.length > 0){        bcrypt.compare(pass, result[0].password, function(err, result1) {          if(result1 == true){            return true;          }          else{            return false;          }      });      }      else {        return false;      }    });   return ???;}我有這樣的代碼,但我不知道如何使該函數返回比較函數的值(true 或 false)。像我一樣在子函數中添加 return 似乎不起作用。有人可以幫我嗎?
查看完整描述

2 回答

?
瀟瀟雨雨

TA貢獻1833條經驗 獲得超4個贊

你可以返回一個承諾:


async function checkAcount(usr, pass) => { 

    const sql = "SELECT * FROM account WHERE userName = ?" ;

    return new Promise((resolve, reject) => {

        con.query(sql, [usr], (err, result) => {

            if(err) {

                reject(err);

                throw err;

            }

            if(result.length > 0){

                bcrypt.compare(pass, result[0].password, function(err, result1) {

                    if(result1 == true){

                        resolve(result);

                        return true;

                    } else{

                        reject(err);

                        return false;

                    }

                });

            } else {

                reject(err);

                return false;

            }

       });

   });

}

不要使用字符串連接來構建 SQL 查詢。這允許 SQL 注入。


查看完整回答
反對 回復 2023-08-18
?
有只小跳蛙

TA貢獻1824條經驗 獲得超8個贊

bcrypt 返回一個承諾 https://www.npmjs.com/package/bcrypt#with-promises

bcrypt.compare(pass, result[0].password).then((result) => { 
 return result;
})


查看完整回答
反對 回復 2023-08-18
  • 2 回答
  • 0 關注
  • 158 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號