Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在对Node express服务器调用API后显示错误消息_Javascript_Jquery_Ajax_Express_Spotify - Fatal编程技术网

Javascript 在对Node express服务器调用API后显示错误消息

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

我正在尝试根据从express服务器收到的响应处理前端的错误。我从前端发出POST请求,将数据发送到express服务器。该端点(以下称为
/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' });