0

我正在尝试使用 Express 路由器以减少我的 app.js 文件中包含的代码,但我在将其路由到正确位置时遇到了问题。

它应该被路由到的页面是 localhost:5000/users/login,但它是路由 localhost:5000/login。

我从 Brad Traversy 的 Udemy 课程中引用了 Vidjot 项目,并尝试以相同的方式进行设置,但即使代码相同,它似乎也不起作用。

下面是我尝试从中路由的 app.js 文件和 users.js 文件的代码。

// Import and initialize express.
const express = require("express");
const app = express();

// Import necessary modules.
const mongoose = require("mongoose");
const path = require("path");
const exphbs = require("express-handlebars");

// Load routes.
// const gifs = require('./routes/gifs');
const users = require("./routes/users");

// Connect to mongoose.
mongoose
  .connect("mongodb://localhost/giphy-saver", {
    useMongoClient: true
  })
  .then(() => {
    console.log("MongoDB Connected...");
  })
  .catch(err => {
    console.log(err);
  });

// Static folder.
app.use(express.static(path.join(__dirname, "public")));

// Handlebars middleware.
app.engine(
  "handlebars",
  exphbs({
    defaultLayout: "main"
  })
);
app.set("view engine", "handlebars");

// Routes.

app.get("/", (req, res) => {
  res.render("index", { title: "Giphy Saver" });
});

app.get("/about", (req, res) => {
  res.render("about", { title: "About" });
});

// Use routes.
app.use("/users", users);

const PORT = process.env.PORT || 5000;

app.listen(PORT);

const express = require("express");
const mongoose = require("mongoose");
// Used for password encryption.
const bcrypt = require("bcryptjs");
// Used for authentication.
const passport = require("passport");
const router = express.Router();

// Load the User model.
require("../models/User");
const User = mongoose.model("users");

// User login route.
router.get("/login", (req, res) => {
  res.render("users/login", { title: "Login" });
});

// User registration route.
router.get("/register", (req, res) => {
  res.render("users/register", { title: "Register" });
});

module.exports = router;

预期的结果是它应该路由到 localhost:5000/users/login 和 localhost:5000/users/register 而不是 localhost:5000/users 和 localhost:5000/register。没有出现错误消息。

4

1 回答 1

0

你在你的html文件中使用href="/users/login"和吗?href="/users/register"

或者您href="/login"在导航栏中使用过?

于 2019-06-17T14:17:38.037 回答