Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.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
Node.js bodyParse错误抑制_Node.js_Express_Body Parser - Fatal编程技术网

Node.js bodyParse错误抑制

Node.js bodyParse错误抑制,node.js,express,body-parser,Node.js,Express,Body Parser,我目前正在使用带有Express的bodyParser来接受JSON请求。每当我传入格式不正确的JSON对象时,它都会通过端点返回一个严重错误,并将其记录到控制台。错误如下: SyntaxError: Unexpected string at Object.parse (native) at parse (/Users/ddibiase-mbp/Documents/Projects/theride_api/node_modules/body-parser/lib/types/js

我目前正在使用带有Express的bodyParser来接受JSON请求。每当我传入格式不正确的JSON对象时,它都会通过端点返回一个严重错误,并将其记录到控制台。错误如下:

SyntaxError: Unexpected string
    at Object.parse (native)
    at parse (/Users/ddibiase-mbp/Documents/Projects/theride_api/node_modules/body-parser/lib/types/json.js:88:17)
    at /Users/ddibiase-mbp/Documents/Projects/theride_api/node_modules/body-parser/lib/read.js:108:18
    at done (/Users/ddibiase-mbp/Documents/Projects/theride_api/node_modules/body-parser/node_modules/raw-body/index.js:239:14)
    at IncomingMessage.onEnd (/Users/ddibiase-mbp/Documents/Projects/theride_api/node_modules/body-parser/node_modules/raw-body/index.js:285:7)
    at IncomingMessage.g (events.js:199:16)
    at IncomingMessage.emit (events.js:104:17)
    at _stream_readable.js:908:16
    at process._tickCallback (node.js:355:11)
SyntaxError: Unexpected string
    at Object.parse (native)
    at parse (/Users/ddibiase-mbp/Documents/Projects/theride_api/node_modules/body-parser/lib/types/json.js:88:17)
    at /Users/ddibiase-mbp/Documents/Projects/theride_api/node_modules/body-parser/lib/read.js:108:18
    at done (/Users/ddibiase-mbp/Documents/Projects/theride_api/node_modules/body-parser/node_modules/raw-body/index.js:239:14)
    at IncomingMessage.onEnd (/Users/ddibiase-mbp/Documents/Projects/theride_api/node_modules/body-parser/node_modules/raw-body/index.js:285:7)
    at IncomingMessage.g (events.js:199:16)
    at IncomingMessage.emit (events.js:104:17)
    at _stream_readable.js:908:16
    at process._tickCallback (node.js:355:11)
我想知道如何才能抑制错误或完全修补它。我已经调查了错误,但找不到任何修补错误的具体建议。

使用Express声明错误是很常见的:

app.use(function(err, req, res, next) {
  ...
  return res.sendStatus(500);
});

这还将捕获中间件(如
body parser

@ddibiase)中抛出的错误。如文档所述,您是否将其作为应用程序的最后一个中间件添加?我很确定,请看一看:app.use(bodyParser.json());use(bodyParser.urlencoded({extended:true}));使用(函数(err,req,res,next){console.error(err.stack);res.status(500).send({errors:['invalid_request']});});抱歉,不管怎样,它正在成功运行。我把事情搞砸了