【发布时间】:2022-01-05 12:11:42
【问题描述】:
app.js
const express = require("express");
const app = express();
app.use("/", require("./routers.js")(app));
app.listen(3000);
路由器.js
module.exports = function (app) {
console.log(app);
app.get("/", (req, res) => {
res.json(5);
});
};
控制台给出的错误是:“TypeError: Router.use() requires a middleware function but got an undefined”
我不明白为什么我不能通过路由器传递 express 应用程序(app.js)(这样我就不会在 router.js 中重新声明 express 和 app 变量)。
【问题讨论】:
-
第二个代码块是routers.js吗?如果是这样,请edit您的问题并标记它。当您使用它时,将最后一句中的引用更改为 routers.js 以匹配代码(或将两者都更改为 router.js)。一致性和拼写在编程中非常重要。
-
顺便说一句,我解决了在 router.js 中返回 app 变量的问题。所以在 module.exports 末尾的 router.js 中,我只写:return app.但是如果您知道解决问题的其他方法会很好:)
标签: javascript node.js express parameter-passing require