Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.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 如何从客户端的节点和Express服务器获取完整的错误消息?_Javascript_Node.js_Express - Fatal编程技术网

Javascript 如何从客户端的节点和Express服务器获取完整的错误消息?

Javascript 如何从客户端的节点和Express服务器获取完整的错误消息?,javascript,node.js,express,Javascript,Node.js,Express,我有一条快速路线,返回400状态和错误消息。我想在客户端警告完整的错误消息,但当我发出警告时,警报只显示“Object Object”。我检查了该对象,没有看到从服务器记录到终端的完整错误消息 在服务器上,错误消息显示“没有定义djhbf”,因为我键入了一些随机字符以抛出错误消息。在客户端,对象有一些属性,但没有一个包含错误消息“djhbf未定义”。最接近错误消息的是“状态文本:错误请求”。如何检索客户端上的实际错误消息“djhbf未定义” 下面是我的server.js代码,它在承诺的catch

我有一条快速路线,返回400状态和错误消息。我想在客户端警告完整的错误消息,但当我发出警告时,警报只显示“Object Object”。我检查了该对象,没有看到从服务器记录到终端的完整错误消息

在服务器上,错误消息显示“没有定义djhbf”,因为我键入了一些随机字符以抛出错误消息。在客户端,对象有一些属性,但没有一个包含错误消息“djhbf未定义”。最接近错误消息的是“状态文本:错误请求”。如何检索客户端上的实际错误消息“djhbf未定义”

下面是我的server.js代码,它在承诺的catch块中发送错误消息:

app.post('/sendEmails', function(req, res, next) {
  axios.get(FEED_URL)
    .then(data => {
      let jobs = data.data.jobs;
      fetchClients(jobs, 'email').then(() => {
        res.sendStatus(200);
      })
      .catch((err) => {
        console.log(err);
        res.status(400).json(err);
      })
    })
    .catch(error => {
      console.log(error);
    });
});
以下是警告错误的客户端代码:

sendEmails() {
    axios.post("/sendEmails")
      .then(res => {
        this.setState({
          emailsSent: true,
          smsSent: false
        });
      })
      .catch((err) => {
        console.log(err);
        alert(err);
      });
  }
更新

这不是一个明确的问题
axios
装饰错误对象。您只需要将客户端console.log更改为:
console.log(err.response.data)

您还需要更新服务器端逻辑,因为您在两侧都使用
axios
。尝试
res.status(400).json({msg:'您的请求有问题'})

如果这样做有效,您只需深入服务器端的
err
对象,查看要发送回客户端的内容


请参阅
axios
文档的部分。

服务器产生的错误消息是一个对象。如何处理这样一个对象以使其成为有效的json?我尝试了以下方法:res.status(404).json({status:404,message:json.stringify(err)});但消息仍然作为空对象返回。在客户端,“err”对象实际上没有响应属性。它看起来是这样的:Object{data:Object,status:404,statusText:“未找到”,headers:Object,config:Object…}错误对象的数据属性只包含javascript对象原型,而不是我的消息。我再次更新了它。我认为您应该尝试硬编码一个响应,看看您得到了什么,然后检查
catch
中的服务器端错误对象,以确定您到底想要发送回客户端的内容。