1
我一直在尝试处理restify中的HTTP错误。这些都是我一直在试图至今代码:如何在restify中处理403 HTTP错误?
function send403(req, res, err, cb) {
console.log('Forbidden');
res.end();
}
然后我使用该功能ForbiddenError
事件:
server.on('ForbiddenError', send403);
我期待该功能将被执行每次服务器接收请求没有authorization
头
server.get('/resource', function (req, res, next) {
if(typeof req.headers['authorization'] === 'undefined') {
return next(new restify.ForbiddenError());
}
else {
// HTTP 200
}
});
每次我尝试访问我不断收到的是默认的RESTify JSON消息的URL。
FYI我已经试过了404错误相同的方法和它的工作原理
server.on('NotFound', send404);
每次我试图发送一个不存在的网址的请求时,send404
功能将被执行。
,如果你想从头部或身体得到的值,我建议你使用VAR urVaribleHere = req.body.varible || '';还有哪些你不了解的部分?因为每次用户发送一个不存在的URL都不会被执行,并且将被发送404 webPage Notfound。 –
@GujaratSantana非常抱歉,如果问题是误导性的,我不是英语发言者。 restify for HTTP错误的默认行为是以JSON格式发送响应。基本上我想在这里做的是让它做别的事情,比如说为特定的HTTP错误创建一个日志。我尝试过'server.on('NotFound',fn)'事件,它可以工作,但'server.on('ForbiddenError',fn)'不起作用。 – sad301
所以你试图发送JSON与server.on('ForbiddenError',Fn)给客户端。我无法帮助你的代码,但也许这个链接将帮助你更好地理解http://thejackalofjavascript.com/architecting-a-restful-node-js-app/ –