Я новичок в восстановлении и пытаюсь понять, как работает система обработки ошибок.
У меня есть простой сервер:
var application = restify.createServer({
name: 'test-api',
version: '1.0.0'
});
application.listen(3001, function() {
console.log('Started...');
});
application.get('/test-api', (req, resp, next) => {
next(new Error('test'));
});
И у меня есть эта простая ошибкаобработчик:
application.on('restifyError', function(req: restify.Request, res: restify.Response, err, callback) {
err.toJSON = function customToJSON() {
console.log('customToJSON');
return {
name: err.name,
message: err.message
};
};
err.toString = function customToString() {
console.log('customToString');
return 'i just want a string';
};
return callback();
});
При тестировании этого API обработчик ошибок всегда вызывает функцию customToString
.Я попытался изменить свой сервер, добавив заголовок по умолчанию к запросу / ответу:
application.pre(function(req, res: restify.Response, next) {
req.headers.accept = 'application/json';
res.header('accept', 'application/json');
return next();
});
Но у меня все еще нет нужного ответа.
Я ожидаю, что обработчик ошибок будет вызывать customToJSON
вместо customToString
.Есть ли какая-либо другая конфигурация?