[英]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.