Ошибка отправки с Nodejs express на Jquery - PullRequest
2 голосов
/ 19 июня 2020

Я пытаюсь найти подходящий способ отправки ошибки в неудавшийся 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

Когда я обрабатываю конкретную c ошибку, я хочу вывести сообщение об ошибке клиенту, но все, что я знаю из сообщения об ошибке, которое я получено, что он оказался в 404.

1 Ответ

1 голос
/ 23 августа 2020

Сообщения в стандартных объектах ошибок не отправляются ... возможно, потому, что они не могут быть преобразованы в строку. Попробуйте вместо этого

res.status(404).send({error: err.message});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...