我正在阅读一本名为“使用 Node.js 进行编程”的书。
这是我不太明白的代码:
https://github.com/JonathanWexler/get-programming-with-nodejs/tree/master/unit_2/lesson_12_capstone/finish/confetti_cuisine
错误控制器.js
const httpStatus = require("http-status-codes");
exports.pageNotFoundError = (req, res) => {
let errorCode = httpStatus.NOT_FOUND;
res.status(errorCode);
res.render("error");
};
exports.internalServerError = (error, req, res, next) => {
let errorCode = httpStatus.INTERNAL_SERVER_ERROR;
console.log(`ERROR occurred: ${error.stack}`);
res.status(errorCode);
res.send(`${errorCode} | Sorry, our application is taking a nap!`);
};
主文件
const express = require("express"),
app = express(),
homeController = require("./controllers/homeController"),
errorController = require("./controllers/errorController"),
layouts = require("express-ejs-layouts");
app.set("view engine", "ejs");
app.set("port", process.env.PORT || 3000);
app.use(
express.urlencoded({
extended: false
})
);
app.use(express.json());
app.use(layouts);
app.use(express.static("public"));
app.get("/", (req, res) => {
res.render("index");
});
app.get("/courses", homeController.showCourses);
app.get("/contact", homeController.showSignUp);
app.post("/contact", homeController.postedSignUpForm);
app.use(errorController.pageNotFoundError);
app.use(errorController.internalServerError);
app.listen(app.get("port"), () => {
console.log(`Server running at http://localhost:${app.get("port")}`);
});
我的问题:
Express 如何知道何时运行“pageNotFoundError”或“internalServerError”?
是否是这样,如果有一个请求,由相应的路由render方法处理,中间件或其他地方的所有render或send方法都被忽略?这可能远非正确,但会发生这样的事情吗?
潇潇雨雨
喵喔喔
相关分类