Javascript 在对Node express服务器调用API后显示错误消息
我正在尝试根据从express服务器收到的响应处理前端的错误。我从前端发出POST请求,将数据发送到express服务器。该端点(以下称为Javascript 在对Node express服务器调用API后显示错误消息,javascript,jquery,ajax,express,spotify,Javascript,Jquery,Ajax,Express,Spotify,我正在尝试根据从express服务器收到的响应处理前端的错误。我从前端发出POST请求,将数据发送到express服务器。该端点(以下称为/endpoint)然后向Spotify API发出请求并返回歌曲列表。如果由于某种原因失败了,我想在前端让用户知道。我认为我在下面写的代码是正确的,但是当Spotify的快速请求失败时,它不会显示错误消息 有人能发现下面的代码有什么错误吗 快速应用 app.post('/endpoint', function(req, res){ var optio
/endpoint
)然后向Spotify API发出请求并返回歌曲列表。如果由于某种原因失败了,我想在前端让用户知道。我认为我在下面写的代码是正确的,但是当Spotify的快速请求失败时,它不会显示错误消息
有人能发现下面的代码有什么错误吗
快速应用
app.post('/endpoint', function(req, res){
var options = {
url: url,
method: 'POST',
json: true
}
request-promise(options).then(function(body){
console.log('All good!');
}).catch(function(err) {
if(err) {
console.log(err);
res.json(err);
}
});
}
jQuery代码
$.ajax({
type: 'POST',
url: 'http://localhost:3000/endpoint',
contentType: 'application/json',
data: JSON.stringify(data),
success: function(data) {
console.log(data);
},
error: function (err) {
console.log(err);
}
});
您只需要在响应中添加一个错误状态。来自快速响应API
它被记录到终端控制台,但不是浏览器的控制台。我认为这是由于
res.json
。我想我需要改用res.send(err)。它看起来像是在处理这个问题,我想这是因为res.json
。我想我需要使用res.send(err)instead@phantom如果您使用res.send(err)
您的前端JS将在success
回调中接收它,但您需要通过error
回调继续执行它,我想是的,您可能是对的,因为我正在处理success
方法中的错误!这就是解决办法!
res.status(500).json({ error: 'message' });