如何在restify中处理403 HTTP错误?
我一直在restify中处理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。
仅供参考我已经尝试了404错误的相同的方法,它的工作原理
server.on('NotFound', send404);
每次我尝试发送一个请求到一个不存在的URL, send404
函数将被执行。
我想这可能是你正在寻找的。 我注意到,在“server.on”语句中,restify不需要“错误”部分。 以下是一个完整的实例。
'use strict'; var restify = require('restify'); var server = restify.createServer(); server.on('Forbidden', send403); server.get('/resource', function(req, res, next){ if(typeof req.headers['authorization'] === 'undefined') { next(new restify.ForbiddenError()); } else { // HTTP 200 } }); function send403(req, res, err, cb){ console.log('Log something here'); return cb(); } server.listen(9000); console.log('listening on port 9000');