【发布时间】:2022-06-20 04:46:24
【问题描述】:
我只是好奇,因为我认为将中间件放在代码中的哪个位置并不重要,只要它在 app/index.js 中即可
我的意思是:
const express = require("express");
const mongoose = require("mongoose");
const dotenv = require("dotenv");
const cors = require("cors");
const app = express();
dotenv.config();
// MIDDLEWARE
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cors());
// ROUTES
const { errorHandler } = require("./middleware/errorMiddleware");
const goalRoutes = require("./routes/goalRoutes");
app.use("/api/goals", goalRoutes);
app.use(errorHandler);
如果我将 errorHandler 中间件放在这样的路由之上:
// MIDDLEWARE
const { errorHandler } = require("./middleware/errorMiddleware");
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cors());
app.use(errorHandler);
// ROUTES
const goalRoutes = require("./routes/goalRoutes");
app.use("/api/goals", goalRoutes);
errorHandler 不再起作用。 这种中间件的位置重要吗? 还有哪些其他类型的中间件需要放在合适的位置?
【问题讨论】:
标签: node.js express error-handling middleware