我是NodeJS
的新手,并且正在练习一个小项目。
我有这段代码通过API端点将请求发送到我的NodeJS
Express服务器。
var XHR = new XMLHttpRequest();
var merchants = ['f6ea7039-de8e-4403-bb63-d348dd502dc8', 'c2a08bfa-db18-4e08-8a08-f4e04dea7e58',
'e02ed2a4-06f4-403b-ad1e-f72b55e0681d'];
//set up the transfer request
XHR.open('POST', apiUrl + '/transfer', true);
XHR.setRequestHeader("Content-Type", "application/json; charset=utf-8");
XHR.withCredentials = true;
var data = JSON.stringify({
//merchantId: merchants[(Math.floor((Math.random() * 200))/100)],
merchantId: 'f6ea7039-de8e-4403-bb63-d348dd502dc3',
amount: (Math.floor((Math.random() * 1000) + 100)/100),
currency: 'EUR',
description: 'Book
// Define what happens on successful data submission
XHR.addEventListener("load", function(event) {
console.log(event);
// execute callback once response is received
if (event.target.status === 200) {
done(XHR.response);
}
});
XHR.send(data)
在服务器端,我有以下代码:
function getMerchantName(query) {
return new Promise(function(resolve,reject){
pool.query(query, [tr.merchantId], function(error, result){
// error ? reject(error) : resolve(result);
if(result[0]){
return resolve(result);
}else{
return reject(error);
}
});
});
}
getMerchantName(sql)
.then(result => {
tr.secondaryName = result[0].mName;
console.log("Secondary Name: ",tr.secondaryName);
conn.release();
getUrl();
})
.catch(function(error){
console.log('Rejected', error);
// res.send(400, {message: 'Merchant Not Found'});
res.status(403).send({message: 'Merchant Not Found'});
});
因此,当未找到merchant id
时,我(通过promise的捕获)抛出对res.status(403).send({message: 'Merchant Not Found'});
的响应
我只能通过XHR.addEventListener
加载事件访问错误状态,而不能通过响应正文访问错误状态。
如何访问此响应正文以显示在客户端?
答案 0 :(得分:0)
我认为您应该使用express bodyparser:
初始化期间:
app.use(bodyParser.json())
这是示例请求处理程序:
app.get('/', (req, res) => console.log(req.body))