Нужно сделать это домашнее задание, когда пользователь вводит свое имя пользователя и пароль, и, если оно совпадает с базой данных, отправит пользователя на страницу профиля, где будет написано «Здравствуйте, <% = user.username%>, не могу заставить его работать»., он всегда остается на той же странице, но получает информацию о пользователе из базы данных.
Более ранняя версия работала и отправляла пользователя на страницу профиля, но даже если входные данные были неправильными, он все равно отправлял его так очевидно, что япытался предотвратить это.
const express = require('express');
const bodyParser = require("body-parser");
const app = express();
const connection = require("./connect");
// parse application/x-www-form-urlencoded
var urlencodedParser = bodyParser.urlencoded({ extended: false });
app.set("view engine", "ejs");
// DB
connection.connect((err) => {
if (err) throw err;
else console.log("Database connected!");
});
app.get("/", (req, res) => {
res.render("login");
});
app.get("/profile", (req, res) => {
console.log(user);
res.render("profile", { user })
})
app.post("/", urlencodedParser, async (req, res) => {
user = await queryFunction("select * from users where users.username = " + connection.escape(req.body.username) +
" and users.password = " + connection.escape(req.body.password));
console.log(user)
if (req.body.username === user.username && req.body.password === user.password) return res.redirect("/profile")
else console.log("Something went wrong!")
});
async function queryFunction(queryString) {
let results = await new Promise((resolve, reject) => connection.query(queryString, (err, results) => {
if (err) {
reject(err);
}
else {
resolve(results);
}
}))
return results;
};