路由器不能用于相同的模块。 没有错误
我正在尝试使用快速路由器为一个简单的项目,这里是我的主要app.js文件:
"use strict"; const express = require("express"); const mongodb = require("mongodb"); const path = require("path"); const index = require("./routes/index"); const error = require(__dirname + "/routes/error"); const app = express(); app.set("view engine", "ejs"); app.use("/",index); app.use("/new",error); app.listen(4000);
这是我的索引文件,这是导出和渲染没有问题。
const express = require("express"); const router = express.Router(); router.get("/",function(req,res){ res.render("index"); }); module.exports = router;
这是我的错误文件,当你发送一个获取请求到“/新”,但它说“不能GET /新”,没有其他错误时,是遵循完全相同的逻辑。 请告诉我这里发生了什么事情。
const express = require("express"); const router = express.Router(); router.get("/new",function(req,res){ res.render("error"); }); module.exports = router;
注意:我有一个index.ejs和error.ejs文件
看起来您在路由url中缺less“/新”。
你要走了
app.use("/new",error);
这意味着到这个路由器的所有路由将以“/ new”开头。
然后在你的路由器中,你将路由定义为“/ new”
router.get("/new",function(req,res){ res.render("error"); });
要访问此路线,您将需要导航到“/新/新”
您是否使用以下url尝试了GET路线?
http://localhost:4000/new/new
我当然认为你已经保存了你的项目,并手动或自动重新启动app.js(nodemon等)。