【问题标题】:showing error message on after API call to Node express server在 API 调用 Node express 服务器后显示错误消息
【发布时间】: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)。看起来它可以使用这个

标签: javascript jquery ajax express spotify


【解决方案1】:

您只需要在响应中添加错误状态即可。来自快速响应 API Express 4.x

res.status(500).json({ error: 'message' });

【讨论】:

  • 我认为这是由于res.json。我想我需要改用res.send(err)
  • @phantom 如果您使用res.send(err),您的前端JS 将在success 回调中收到它,但我认为您需要通过error 回调继续它
  • 啊好吧,你可能是对的,因为我正在处理我的 success 方法中的错误
  • 漂亮!这就是解决方案!
猜你喜欢
  • 2017-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-16
  • 2018-06-25
  • 2020-12-30
  • 2020-09-07
相关资源
最近更新 更多