在 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

带有 Express 异步 API 调用的 Node.JS

React App 和 node.js 后端 api 安全获取

用于组织的 Node.js Express 导出路由?

使用 cors、express 和 google api 的 Node.js 服务器应用程序在 Azure 部署后无法正常工作

在 CORS 调用后,Express Session 不会持续存在