gpt4 book ai didi

javascript - express.js,如果删除下一个参数,错误处理程序将不起作用

转载 作者:行者123 更新时间:2023-12-01 01:47:43 24 4
gpt4 key购买 nike

我正在学习 Express.js 并使用他们的生成器生成了一个新应用程序:

npm install express-generator -g && express myapp

之后我在app.js中看到有这样的代码:

// catch 404 and forward to error handler
app.use(function(req, res, next) {
next(createError(404));
});

// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get("env") === "development" ? err : {};

// render the error page
res.status(err.status || 500);
res.render("error");
});

enter image description here

正如您在图片中看到的,eslint 正在提示 next 参数,已声明但从未使用过。我同意,但如果我删除它 express 不会呈现错误页面。

为什么会出现这种行为?

这对我来说很危险,因为我不能再相信 eslint 或我的编码学位了?我肯定错过了一些东西。 但是什么

最佳答案

因为express中的错误处理程序是由参数数量决定的:

  (function (req, res, next) { }).length // 3
(function (err, req, res, next) {}).length // 4
(function (err, req, res) {}).length // 3

因此,如果删除该参数,错误处理程序将不再被视为错误处理程序。

This is dangerous for me because I can't trust anymore eslint or my coding degree?

如果 linter 比程序员更能理解代码……我们为什么需要程序员?

关于javascript - express.js,如果删除下一个参数,错误处理程序将不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51826711/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com