在restifyError上调用toString而不是toJSON

时间:2018-10-11 02:42:12

标签: javascript node.js rest restify

我是重新适应新事物的人,我试图了解它的错误处理程序系统是如何工作的。

我有一个简单的服务器:

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。 还有其他配置吗?

0 个答案:

没有答案