Это код, который работает, проверяя, существуют ли входы, зарегистрированные кем-то на странице входа, в базе данных или нет. Работает и все. Однако, когда я хотел установить cookie (я просто хотел установить его случайным образом, чтобы посмотреть, работает ли он), чтобы я мог сохранить его состояние как онлайн, произошла ошибка
Cannot set Headers after they are sent
Я понимаю, что это потому, что я сделал res.render
и res.cookies
по одному и тому же запросу или что-то в этом роде, однако я удалил res.render
и сохранил res.cookies
, ошибка исчезла, но даже тогда это не не регистрировать файлы cookie (нет файлов cookie на сетевой панели инструментов dev или писать на консоли document.cookie
)
Я также пытался переместить этот код в запрос get при рендеринге страницы, но он все еще не работает.
Это код сервера:
// Importing modules/packages
let connection = require("./Connection.js");
let bodyParser = require("body-parser");
var cookieParser = require("cookie-parser");
let express = require("express");
let app = express();
app.use(cookieParser());
let urlencodedParser = bodyParser.urlencoded({ extended: false });
// Server and routing
app.listen(3000, function() {
console.log("The server at port 3000 is open!");
});
app.set("view engine", "ejs");
app.get("/Signup", (req, res) => {
res.render("Register");
});
app.get("/", function(req, res) {
res.redirect("Login");
});
app.get("/Login", function(req, res) {
res.render("Login");
});
// Database's Connection
connection.connect(err => {
if (err) {
throw "ERROR! " + err;
}
console.log("Has connected to MySQL Database!");
});
// Requesting and Receiving Data from body parser
app.post("/Signup", urlencodedParser, function(req, res) {
console.log(req.body);
res.render("Register");
connection.query(
`insert into users (Username, User_Password, Email_Address) values ("${
req.body.Username
}", ${req.body.Password}, "${req.body.Email}")`,
function(err) {
if (err) throw "An error has happened while excuting the query " + err;
console.log("Query got excuted successfully!");
}
);
});
app.post("/Login", urlencodedParser, (req, res) => {
connection.query(
`SELECT Username FROM users WHERE User_Password = ${
req.body.Password
} AND Username = "${req.body.Username}"`,
function(err, results) {
if (results.length === 0) {
console.log(
"Sorry, this username/password doesn't exist in our database."
);
} else {
console.log("Logined successfully!");
res.cookie("Friend", "Jack");
}
}
);
res.render("Login");
});
Я также пытался прочитать куки, используя req.cookie("Friend")
, но это не сработало. Я не знаю, в чем проблема.
Как я могу решить эту проблему, пожалуйста?