从 Nodejs 向 Jquery 发送错误



我正在尝试找出一种适当的方法来向失败的jquery发布请求发送错误。我一直在到处寻找合适的方法来做到这一点。

如果我发出这样的jquery发布请求:

$.ajax({
type: "POST",
url: "/someRoute",
data: {
data: $(".data").val(),
},
success: function (data) {
console.log("Success")
},
error:function(err){
console.log(err)
$.toast({
title: err.message,
subtitle: 'Just Now',
content: err.message,
type: 'danger',
delay: 5000
});
}
})

Nodejs

router.post("/someRoute",(req,res)=>{
try{
if(!someCondition){
const err = new Error('Item Not Found')
err.statusCode = 404;
throw err;
}
}
catch(err){
res.status(404).send(err)
}
}

问题是我已附加到 Nodejs 中的错误对象的消息

const err = new Error('Item Not Found')在我的jquery错误函数中不可用。我在控制台中收到的错误消息是

abort: ƒ ( statusText )
always: ƒ ()
catch: ƒ ( fn )
done: ƒ ()
fail: ƒ ()
getAllResponseHeaders: ƒ ()
getResponseHeader: ƒ ( key )
overrideMimeType: ƒ ( type )
pipe: ƒ ( /* fnDone, fnFail, fnProgress */ )
progress: ƒ ()
promise: ƒ ( obj )
readyState: 4
responseJSON: {statusCode: 404}
responseText: "{"statusCode":404}"
setRequestHeader: ƒ ( name, value )
state: ƒ ()
status: 404
statusCode: ƒ ( map )
statusText: "Not Found"
then: ƒ ( onFulfilled, onRejected, onProgress )
__proto__: Object

当我处理特定错误时,我想向客户端显示错误消息,但我从收到的错误消息中知道它最终出现在 404 中。

标准错误对象中的消息不会被发送......也许是因为它们无法字符串化。 试试这个

res.status(404).send({error: err.message});

最新更新