我有以下情况,我有一个在用户登录时添加标志的中间件
//if some situation happend
req.feathers.isAuthenticated = true;
//else
req.feathers.isAuthenticated = false;
next();
我有一个钩子可以检查用户是否已经登录了某些服务
myService.before({
create(hook, next) {
if (!hook.params.isAuthenticated) {
throw new Error('AccessDenied');
}
next();
}
});
这项工作按预期进行,问题出在错误处理程序上,当我在我的应用程序末尾添加一个简单的错误处理程序时
app.use(function (err, req, res, next) {
if (isDev) {
console.error(err);
}
res.status(err.status || 500);
res.json(err);
});
err 对象是整个钩子对象,也是 Error 的一个实例
我只是想得到之前在钩子上抛出的错误,我尝试next(err)
在钩子上调用,但这不起作用。
有人可以帮我解决这个问题吗?
编辑
我不想删除我的错误处理程序上的钩子属性