res.redirect()在使用哈巴狗时不起作用

发布于 2025-02-06 16:30:34 字数 3012 浏览 0 评论 0原文

我的代码工作正常,但是res.redirect()并未将我重定向到其他页面,而是将PUG用作模板引擎。这是我第一次使用哈巴狗。 (将此额外的文本添加到疑问是因为看起来您的帖子主要是代码;请添加更多详细信息。错误不是让我发布大声笑。)

const express = require("express");
const mongoose = require("mongoose");
const User = require("./model/user");
const bcrypt = require("bcrypt");
const login = require("./routes/login");
const register = require("./routes/register");
const dashboard = require("./routes/dashboard");
const home = require("./routes/home");
const crypto = require("crypto");
const dotenv = require("dotenv").config();

// Connecting Database
mongoose
  .connect(process.env.DB, {
    useNewUrlParser: true,
    useUnifiedTopology: true,
  })
  .then(() => {
    console.log("Database Connected!");
  });

const app = express();

// Setting view engine to pug
app.set("view engine", "pug");

// parsing json
app.use(express.json());

// Routes
app.use("/login", login);
app.use("/register", register);
app.use("/dashboard", dashboard);
app.use("/", home);

// creating a new user
app.post("/register", async (req, res) => {
  const { username, email, password } = req.body;
  const hashedPass = await bcrypt.hash(password, 10);
  User.create({
    username: username,
    email: email,
    password: hashedPass,
    emailToken: crypto.randomBytes(64).toString("hex"),
  });
});

// logging in the user
app.post("/login", async (req, res) => {
  const { email, password } = req.body;
  const findUser = await User.findOne({ email: email });
  console.log(findUser);
  if (findUser) {
    const match = await bcrypt.compare(password, findUser.password);
    if (match) {
      console.log("User logged in");
      // This is not working
      res.redirect("/dashboard");
    } else {
      console.log("Invalid Password !");
    }
  } else {
    console.log("User not registered !");
  }
});

app.listen(process.env.PORT, () => {
  console.log("Server to chal gya ji...");
});

这是我登录的PUG文件。

doctype html 
html
    head
        body
            form(id="form")
              h1 Login
              label Email  
              input(id="email" type="text")
              br
              br
              label Password  
              input(id="password" type="password")
              br
              br
              input(type="submit" id="btn" value="Login")
              br
              br
              a(href="/register") Register
              script  
                include login.js

这是我使用fetch发送发布请求的登录。

const form = document.querySelector("#form");

form.addEventListener("submit", registerUser);

async function registerUser(e) {
  e.preventDefault();

  const email = document.querySelector("#email").value;
  const password = document.querySelector("#password").value;

  const output = await fetch("/login", {
    method: "POST",
    headers: {
      "content-type": "application/json",
    },
    body: JSON.stringify({
      email,
      password,
    }),
  });
}

My code is working but res.redirect() is not redirecting me to other pages, I am using pug as template engine. this is my first time using pug. (adding this extra text to question because It looks like your post is mostly code; please add some more details. error is not letting me post lol. )

const express = require("express");
const mongoose = require("mongoose");
const User = require("./model/user");
const bcrypt = require("bcrypt");
const login = require("./routes/login");
const register = require("./routes/register");
const dashboard = require("./routes/dashboard");
const home = require("./routes/home");
const crypto = require("crypto");
const dotenv = require("dotenv").config();

// Connecting Database
mongoose
  .connect(process.env.DB, {
    useNewUrlParser: true,
    useUnifiedTopology: true,
  })
  .then(() => {
    console.log("Database Connected!");
  });

const app = express();

// Setting view engine to pug
app.set("view engine", "pug");

// parsing json
app.use(express.json());

// Routes
app.use("/login", login);
app.use("/register", register);
app.use("/dashboard", dashboard);
app.use("/", home);

// creating a new user
app.post("/register", async (req, res) => {
  const { username, email, password } = req.body;
  const hashedPass = await bcrypt.hash(password, 10);
  User.create({
    username: username,
    email: email,
    password: hashedPass,
    emailToken: crypto.randomBytes(64).toString("hex"),
  });
});

// logging in the user
app.post("/login", async (req, res) => {
  const { email, password } = req.body;
  const findUser = await User.findOne({ email: email });
  console.log(findUser);
  if (findUser) {
    const match = await bcrypt.compare(password, findUser.password);
    if (match) {
      console.log("User logged in");
      // This is not working
      res.redirect("/dashboard");
    } else {
      console.log("Invalid Password !");
    }
  } else {
    console.log("User not registered !");
  }
});

app.listen(process.env.PORT, () => {
  console.log("Server to chal gya ji...");
});

This is my pug file for login.

doctype html 
html
    head
        body
            form(id="form")
              h1 Login
              label Email  
              input(id="email" type="text")
              br
              br
              label Password  
              input(id="password" type="password")
              br
              br
              input(type="submit" id="btn" value="Login")
              br
              br
              a(href="/register") Register
              script  
                include login.js

And this is login.js from where I am sending a post request using fetch.

const form = document.querySelector("#form");

form.addEventListener("submit", registerUser);

async function registerUser(e) {
  e.preventDefault();

  const email = document.querySelector("#email").value;
  const password = document.querySelector("#password").value;

  const output = await fetch("/login", {
    method: "POST",
    headers: {
      "content-type": "application/json",
    },
    body: JSON.stringify({
      email,
      password,
    }),
  });
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文