我是重新适应新事物的人,我试图了解它的错误处理程序系统是如何工作的。
我有一个简单的服务器:
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
。
还有其他配置吗?