Вы можете передавать данные между маршрутами с помощью query string
или session
.
С сеансом:
Запустите приведенную ниже команду для установки сеанса lib.
$> npm i --save express-session
Вам необходимо выполнить следующие шаги:
- Создать уникальный
id
для каждого запроса пользователя. (Вы можете использовать Date (). GetTime ()). - Добавить этот уникальный
id
в строку запроса. - Создать новый ключ с этим
id
в объекте сеанса. - Назначьте имя пользователя и пароль для вновь созданного сеансового ключа. Благодаря этому вы сможете безопасно получить
email
и пароль каждого пользователя - In
page
route, получить id
из строки запроса и затем извлечь данные из сеанса с этим id
без конфликт.
код:
const express = require("express");
const bodyParser = require("body-parser");
const session = require('express-session'); // add the session lib
const app = express();
// Session secret key
app.use(session({
'secret': '343ji43j4n3jn4jk3n'
}))
app.set("view engine", "ejs");
app.use(bodyParser.urlencoded({ extended: true }));
app.get("/login", (req, res) => {
res.render("login");
});
//From the login.ejs file, a form submitted the values 'email' and 'password'
app.post("/login", (req, res) => {
const email = req.body.email;
const password = req.body.password;
let id = new Date().getTime();
req.session[id] = { email, password};
res.redirect(`/page?id=${id}`)
});
app.get("/page", (req, res) => {
let id = req.query.id;
let email = req.session[id].email;
let password = req.session[id].password
//Now, here I want to use the email and password from the app.post /login
});
Пример строки запроса:
Не рекомендуется добавьте пароль в строку запроса.
const express = require("express");
const bodyParser = require("body-parser");
const app = express();
app.set("view engine", "ejs");
app.use(bodyParser.urlencoded({ extended: true }));
app.get("/login", (req, res) => {
res.render("login");
});
//From the login.ejs file, a form submitted the values 'email' and 'password'
app.post("/login", (req, res) => {
const email = req.body.email;
const password = req.body.password;
res.redirect(`/page?email=${email}&password=${password}`)
});
app.get("/page", (req, res) => {
let email = req.query.email;
let password = req.query.password
//Now, here I want to use the email and password from the app.post /login
});