在 API 调用 Node express 服务器后显示错误消息
Posted
技术标签:
【中文标题】在 API 调用 Node express 服务器后显示错误消息【英文标题】:showing error message on after API call to Node express server 【发布时间】:2017-04-25 01:51:10 【问题描述】:我正在尝试根据从我的快速服务器收到的响应来处理前端的错误。我正在从将数据发送到快速服务器的前端发出 POST 请求。该端点(下面称为 /endpoint
)然后向 Spotify API 发出请求并返回歌曲列表。如果由于某种原因失败了,我想让用户在前端知道。我认为我在下面编写的代码是正确的,但是当对 Spotify 的 Express 请求失败时,它没有显示错误消息。
谁能发现下面的代码有什么问题?
快递应用
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);
);
【问题讨论】:
它被记录到终端控制台,而不是浏览器的控制台 我认为这是由于res.json
。我想我需要改用res.send(err)
。看起来它可以使用这个
【参考方案1】:
您只需要在响应中添加错误状态即可。来自快速响应 API Express 4.x
res.status(500).json( error: 'message' );
【讨论】:
我认为这是由于res.json
。我想我需要改用res.send(err)
@phantom 如果您使用res.send(err)
,您的前端JS 将在success
回调中收到它,但我认为您需要通过error
回调继续它
啊好吧,你可能是对的,因为我正在处理我的 success
方法中的错误
漂亮!这就是解决方案!以上是关于在 API 调用 Node express 服务器后显示错误消息的主要内容,如果未能解决你的问题,请参考以下文章
从运行在不同端口的 Vue 应用程序调用 node express 服务器 API
React App 和 node.js 后端 api 安全获取
使用 cors、express 和 google api 的 Node.js 服务器应用程序在 Azure 部署后无法正常工作