如何处理 restify 中的 403 HTTP 错误?
How to handle 403 HTTP error in restify?
我一直在尝试处理 restify 中的 HTTP 错误。这些是我到目前为止一直在尝试的代码:
function send403(req, res, err, cb) {
console.log('Forbidden');
res.end();
}
然后我在 ForbiddenError
事件中使用该函数 :
server.on('ForbiddenError', send403);
我希望每次服务器收到没有 authorization
header
的请求时执行该函数
server.get('/resource', function (req, res, next) {
if(typeof req.headers['authorization'] === 'undefined') {
return next(new restify.ForbiddenError());
}
else {
// HTTP 200
}
});
每次我尝试访问 url 时,我都会收到默认的 restify JSON 消息。
仅供参考,我已经针对 404 错误尝试了相同的方法并且有效
server.on('NotFound', send404);
每次我尝试向 non-existing url 发送请求时,都会执行 send404
函数。
我想这可能就是您要找的。我注意到在 "server.on" 语句中 restify 不需要 "Error" 部分。以下是一个完整的工作示例。
'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');
我一直在尝试处理 restify 中的 HTTP 错误。这些是我到目前为止一直在尝试的代码:
function send403(req, res, err, cb) {
console.log('Forbidden');
res.end();
}
然后我在 ForbiddenError
事件中使用该函数 :
server.on('ForbiddenError', send403);
我希望每次服务器收到没有 authorization
header
server.get('/resource', function (req, res, next) {
if(typeof req.headers['authorization'] === 'undefined') {
return next(new restify.ForbiddenError());
}
else {
// HTTP 200
}
});
每次我尝试访问 url 时,我都会收到默认的 restify JSON 消息。
仅供参考,我已经针对 404 错误尝试了相同的方法并且有效
server.on('NotFound', send404);
每次我尝试向 non-existing url 发送请求时,都会执行 send404
函数。
我想这可能就是您要找的。我注意到在 "server.on" 语句中 restify 不需要 "Error" 部分。以下是一个完整的工作示例。
'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');