簡體   English   中英

如何在單個 GET 請求中創建多個查詢

[英]How to create multiple queries in a single GET request

我正在使用node-pg並希望在單個GET請求中進行多個查詢。

例如考慮我做了兩個這樣的查詢:

const getSomeInfo = (request, response) => {
    
    pool.query('SELECT * FROM jobs', (error, results) => {
        if (error) {
            throw error
        }
        var jobObj = results.rows;
        response.render('pages/jobinfo', {
            jobObj: jobObj
        });
    })

    pool.query('SELECT * FROM description INNER JOIN views', (error, results) => {
        if (error) {
            throw error
        }
        var descObj = results.rows;
        response.render('pages/jobinfo', {
            descObj: descObj
        });
    })
    
}

此代碼導致以下錯誤Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client

有沒有辦法在同一個GET請求中進行這兩個查詢,以便可以在同一頁面上使用包含結果的對象?

您只能呈現一個文檔,但這可以包含兩個局部變量,一個來自每個查詢。 要並行執行查詢,請使用Promise.all並利用沒有回調 function 的pool.query返回 promise 的事實。

const getSomeInfo = (request, response) => {
    
  Promise.all([
    pool.query('SELECT * FROM jobs'),
    pool.query('SELECT * FROM description INNER JOIN views')
  ]).then(function([jobResults, descResults]) {
    response.render('pages/jobinfo', {
      jobObj: jobResults.rows,
      descObj: descResults.rows
    });
  }, function(error) {
    throw error;
  });
    
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM