【发布时间】:2014-10-25 01:36:34
【问题描述】:
考虑以下标准 Express 函数:
if (app.get('env') === 'development') {
app.use(function (err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: err
});
});
}
显示以下警告:
'next' 已定义但从未使用过。 - W098
我知道我可以禁用所有警告,但这不是我想要的。我需要的是仅针对特定参数(上面的 sn-p 中的“下一个”)使 JSHint 静音。
对于这个看似常见的问题,我还没有看到任何明确的答案。有什么想法吗?
谢谢!
【问题讨论】:
-
恐怕你所问的是不可能的。本质上,您可以在您的
.jshintrc或您的文件中添加unused: vars,但我认为您不能仅针对特定参数禁用它。 -
"[...] 这个看似常见的问题。" 这实际上是相当不寻常的,因为 Express 需要 4 个命名参数来识别错误处理程序。在大多数情况下,函数的
length并不重要,删除附加参数以满足警告不会影响应用程序的运行方式。 -
2nd answer 与 Paolo 链接的问题可能是最接近的 - 禁用
function中的unused警告。 JSHint 的"inline configuration" comments“是函数范围的,这意味着如果你把它们放在一个函数中,它们只会影响这个函数的代码。” -
Jonathan, Express 4 要求 arity of 4 进行错误处理:“错误处理中间件的定义与常规中间件一样,但必须使用 4 的arity 定义(即签名 (err, req, res, next))”。见expressjs.com/guide.html#error-handling