javascript - 实施快速路由器
问题描述
例如,我有一个带有路由器文件的NodejsHTTP methods
服务器,这些文件为/api/users/all
.
// /routes/user.routes.js
module.exports = (app) => {
app.use((req, res, next) => {
res.header(
"Access-Control-Allow-Headers",
"x-access-token, Origin, Content-Type, Accept"
);
next();
});
app.get(
"/api/users/all",
controller.allAccess
);
}
我require()
在我的server.js文件中是这样的。
// server.js
require("./routes/user.routes")(app);
现在,我不想使用绝对路由,而是想实现express.Router()
.
我在user.routes.js文件中进行了以下更改。
// /routes/user.routes.js
const express = require("express");
const router = express.Router();
module.exports = (app) => {
app.use((req, res, next) => {
res.header(
"Access-Control-Allow-Headers",
"x-access-token, Origin, Content-Type, Accept"
);
next();
});
router.get(
"/all",
controller.allAccess
);
}
我在路由文件夹中创建了一个index.js文件,该文件使用路由和.exports
router
// /routes/index.js
const express = require("express");
const userRoutes = require("./user.routes");
const router = express.Router();
router.use("/users", userRoutes);
module.exports = router;
并在我的server.js文件中进行了以下更改。
// server.js
const routes = require("./routes");
app.use("/api/v1", routes);
但是我在到达路线时收到错误消息。
TypeError:app.use 不是 module.exports 的函数
我应该怎么做才能express.Router()
正确实施?
解决方案
您只是忘记将 传递给app
您的router.use("/users", userRoutes);
电话吗?
目前user.routes
不知道是什么app
,因为您还没有实现类似的东西const app = express();
,需要将其传入。
推荐阅读
- python - Pandas 合并相同的值后,列名变为0
- python - 如何根据Python中的字符位置拆分数据框列?
- php - Opencart 3.0.3.2 - 在 Ajax + Twig 上抓取多维数组
- php - 生成任意移动的 URL 字符时
- django - 使用 Django 进行数据表服务器端渲染需要很长时间才能响应
- javascript - 如何在 React Native 中动态包含模块
- java - 字符串比较应该不相等
- java - 你怎么知道一个webview有一些JS功能?
- c# - 在 C# 中的 foreach 语句中保持流?
- python - 如何使用 Flask CORS 将域列入白名单