路由器不适用于相同的模块。没错

时间:2017-01-25 14:53:40

标签: node.js express router

我正在尝试使用快速路由器进行一个简单的项目,这是我的主要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;

这是我的错误文件,当你向“/ new”发送一个get请求时它遵循完全相同的逻辑,但是它说“不能GET / new”而没有其他错误。请告诉我这里发生了什么。

const express = require("express");
const router = express.Router();

router.get("/new",function(req,res){
    res.render("error");
});

module.exports = router;

注意:我有一个index.ejs和error.ejs文件

1 个答案:

答案 0 :(得分:2)

看起来你错过了一个' / new'在您的路线网址中。

你要去

app.use("/new",error);

这意味着此路由器的所有路由都以' / new'。

开头

然后在您的路由器中,您将路线定义为' / new'

router.get("/new",function(req,res){
    res.render("error");
});

要访问此路线,您需要导航至" / new / new"

您是否尝试过使用以下网址的GET路线?

http://localhost:4000/new/new

我当然假设您已保存项目并手动或自动重新启动app.js(nodemon等)。