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

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

NodeJS 需要異步任務

NodeJS 需要異步任務

手掌心 2023-05-25 18:20:23
我正在嘗試將 NodeJS require 語法與異步數據庫查詢一起使用。我希望程序在進入下一個要求之前等待查詢完成,因為從數據庫返回的一些信息作為參數傳遞給下一個要求。這是我的代碼:const dealership = require('../models/getDealershipById.js')(id);const dealershipLeads = require('../models/getLeadsByDealershipId.js')(dealership.id);const dealershipStaff = require('../models/getStaffByDealershipId.js')(dealership.id);return [dealership, dealershipLeads, dealershipStaff];我曾嘗試將其包裝在匿名異步函數中,但這沒有用。有誰知道如何做到這一點?這是我的模塊代碼:module.exports = function(id) {const pool = require('../loaders/pool.js')();  pool.query('SELECT * FROM dealerships WHERE id = \'' + id + '\';', (err, res)   => {    if(err) console.error(err.stack);    return res.rows[0];  });};
查看完整描述

1 回答

?
心有法竹

TA貢獻1866條經驗 獲得超5個贊

async據我了解,您已經使用and包裝了導出的函數await:


module.exports = function(id) {

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

        const pool = require('../loaders/pool.js')();


        pool.query(

            "SELECT * FROM dealerships WHERE id = '" + id + "';",

            (err, res) => {

                if (err) {

                    console.error(err.stack);

                    reject(err);

                }

                else {

                    resolve(res.rows[0]);

                }

            }

        );

    });

};

所以現在只需在調用代碼中使用asyncand :await


async function getData() {

     const dealership = await require('../models/getDealershipById.js')(id);

     const dealershipLeads = await require('../models/getLeadsByDealershipId.js')(dealership.id);

     const dealershipStaff = await require('../models/getStaffByDealershipId.js')(dealership.id);

}


getData()

重要提示:作為旁注,請避免"SELECT * FROM dealerships WHERE id = '" + id + "';",因為這是一個真正糟糕的安全反模式,如果id未正確清理,它很容易允許 SQL 代碼注入。pool.query("SELECT * FROM dealerships WHERE id = ?", [id], ...)如果您的驅動程序允許,請使用類似的東西,或者將其替換為允許的驅動程序或包裝器。


查看完整回答
反對 回復 2023-05-25
  • 1 回答
  • 0 關注
  • 126 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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