gpt4 book ai didi

node.js - expressjs - 未设置响应正文

转载 作者:行者123 更新时间:2023-11-29 13:42:47 24 4
gpt4 key购买 nike

在下面的 NodeJS API 中,PostgreSQL 数据库插入了多行,然后需要发送一个响应主体。由于有多种情况可能会出现错误,因此我需要使用消息代码设置响应正文,以帮助识别可能的原因。因此,我使用了一个 resp 对象,它将保存消息代码的 code 键。此对象将在状态为 200(成功)或 500(错误)的 HTTP 响应中发送。

但是,我一直收到一个空的响应正文。变量作用域可以吗?

router.post('/', function (req, res, next) {
rdbmsPool.connect((err, client, release) => {
if (err) {
var resp = {
'Request-Id' : req.get('X-Request-Id'),
'code' : 'code'
}
res.status(500)
res.send(resp)
} else {
var resp = {}
for (k in someArray) {

client.query(queryString, colValues, (err, result) => {
if (err) {
resp = {
'Request-Id' : req.get('X-Request-Id'),
'code' : 'code'
}
res.status(500)
} else {
resp = {
'Request-Id' : req.get('X-Request-Id'),
'code' : 'code'
}
res.status(200)
}
})
}
for (k in someOtherArray) {
client.query(queryString, colValues, (err, result) => {
if (err) {
resp = {
'Request-Id' : req.get('X-Request-Id'),
'code' : 'code'
}
res.status(500)
} else {
resp = {
'Request-Id' : req.get('X-Request-Id'),
'code' : 'code'
}
res.status(200)
}
})
}
release()
res.send(resp)
}
})
});

最佳答案

尝试这样的事情

let array1 = [];
for(k in someArray){
array1.push(client.query(queryString, colValues));
}

let array2 = [];

for (k in someOtherArray) {
array2.push(client.query(queryString, colValues));
}

try{
const results1 = await Promise.all(array1);
const results2 = await Promise.all(array2);
// if it comes here queries are successful
}
catch(error){
//send 500 here. any query have failed
console.log(error);
}

关于node.js - expressjs - 未设置响应正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52799971/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com