Domain в node.js не ловит исключение от body-parser middleware.
Использую следующие вещи:
Обернул код сервера в модуль domain, но когда я хочу отослать body в некорректной форме, то получаю исключение. Странность в том, что модуль domain не отлавливает это исключение, и я получаю его как есть. Почему такое происходит? Как можно сделать так, чтобы domain отлавливал и ошибки от модуля. Пример кода: var domain = require('domain'); var d = domain.create(); d.on('error', function(err) { console.log(err.stack); console.log("Something is bad"); }); d.run(function() { var express = require('express'); var bodyParser = require('body-parser'); var app = express(); app.use(bodyParser.json()); app.post('/', function(req, res) { res.status(200).send('hello world'); }); app.listen(3000); }); Пример передачи на сервер невалидного body: curl -XPOST 'http://localhost:3000/' -d '{\"foo\": \"bar\"' -H "Content-Type:application/json" -v Получаемая ошибка: SyntaxError: Unexpected token \ at Object.parse (native) at parse (C:\Users\User\Desktop\check\node_modules\body-parser\lib\types\json.js:88:17) at C:\Users\User\Desktop\check\node_modules\body-parser\lib\read.js:116:18 at invokeCallback (C:\Users\User\Desktop\check\node_modules\body-parser\node_modules\raw-body\index.js:262:16) at done (C:\Users\User\Desktop\check\node_modules\body-parser\node_modules\raw-body\index.js:251:7) at IncomingMessage.onEnd (C:\Users\User\Desktop\check\node_modules\body-parser\node_modules\raw-body\index.js:308:7) at IncomingMessage.emit (events.js:104:17) at _stream_readable.js:908:16 at process._tickDomainCallback (node.js:381:11) |
Часовой пояс GMT +3, время: 13:16. |