在单个nodejs文件中使用多个post方法

5lhxktic  于 2023-04-11  发布在  Node.js
关注(0)|答案(1)|浏览(109)

这是我的nodejs代码
我已经使用Nodejs创建了一个小型的express服务器,目前能够处理一个post请求--检查用户是否存在。
我需要纳入一个额外的职位要求,这将使我能够登录一个新的用户。登录请求来自一个login_page。HTML页面,其中包括一个相同的登录形式作为第一个。
第一个post方法正确执行,但第二个post方法没有响应

const mysql = require("mysql");
const express = require("express");
const bodyParser = require("body-parser");
const encoder = bodyParser.urlencoded({extended: true});

const app = express();

// Serve static files from the "assets" folder
app.use("/assets", express.static("assets"));

// Set the view engine to "ejs"
app.set("view engine", "ejs");

// Serve the login_styles.css file from the "css" folder
app.use("/login_styles", express.static(__dirname + "/css"));

const connection = mysql.createConnection({
    host: "localhost",
    user: "root",
    password: "GNAP9#ag",
    database: "dbmsclassroom"
});

// Connect to the database
connection.connect(function(error) {
    if (error) {
        console.log(error); // Print the error message
    } else {
        console.log("Connected to the database successfully!");
    }
});

// Serve the login page
app.get("/", function(req, res) {
    res.sendFile(__dirname + "/Login_page.html");
});

// Handle the student login form submission
app.post("/student", encoder, function(req, res) {
    var username = req.body.username;
    var password = req.body.password;
    connection.query("SELECT * FROM students WHERE user_id = ? AND password = ?", [username, password], function(error, results, fields) {
        if (results.length > 0) {
            res.redirect("/welcomestudent");
        } else {
            res.redirect("/");
        }
    });
});

// Handle the teacher login form submission
app.post("/teacher", encoder, function(req, res) {
    var username1 = req.body.username1;
    var password1 = req.body.password1;
    connection.query("SELECT * FROM students WHERE user_id = ? AND password = ?", [username1, password1], function(error, results, fields) {
        if (results.length > 0) {
            res.redirect("/welcometeacher");
        } else {
            res.redirect("/");
        }
    });
});

// Serve the student welcome page
app.get("/welcomestudent", function(req, res) {
    res.sendFile(__dirname + "/welcomestudent.html");
});

// Serve the teacher welcome page
app.get("/welcometeacher", function(req, res) {
    res.sendFile(__dirname + "/welcometeacher.html");
});

// Start the server and listen on port 4000
app.listen(4000, function() {
    console.log("Server listening on port 4000");
});

我必须做些什么改变
这样做,第二个职位的方法也正常工作。
我已经参考了一些其他的例子,但都是一样的,我的代码

yacmzcpb

yacmzcpb1#

在您的代码中,您查询的是学生表,而不是为教师定义的任何表。

app.post("/teacher", encoder, function(req, res) {
    var username1 = req.body.username1;
    var password1 = req.body.password1;
    connection.query("SELECT * FROM students WHERE user_id = ? AND password = ?", [username1, password1], function(error, results, fields) {
        if (results.length > 0) {
            res.redirect("/welcometeacher");
        } else {
            res.redirect("/");
        }
    });
})

你需要修改你的查询到正确的表,如果你用一个存在的学生详细信息测试你的当前/教师职位端点,它会起作用。所以你需要做的就是修改你的查询以匹配正确的表。

相关问题