【发布时间】:2021-10-20 15:08:32
【问题描述】:
我想做什么? 我想登录并显示用户的每周报告。如果用户报告显示,则该用户 ID 需要提供。我想从会话中得到这个。
req.sessions.id 无法跨两个函数达到 id 的值
在 app.post("/auth", action.... ??? ~ 文件:app.js ~ 第 66 行 ~ req.session.id Wh9cIUGQzJ1PNdv0i9qb2eiUIQ3-Iy_V 在 findByWorkerId 函数中 ??? ~ 文件:report.controller.js ~ 第 28 行 ~ req.session.id.id C0yOICXX8dSFT3XLJZvf3D8NKtyEndH_
如您所见
Wh9cIUGQzJ1PNdv0i9qb2eiUIQ3-Iy_V
和
C0yOICXX8dSFT3XLJZvf3D8NKtyEndH_ 值不一样。
我从 db 的 id 列中得到它,它就像 id 一样。例如 1、3、5
如何查看这个会话值?
app.post("/auth"
app.post("/auth", validatePayloadMiddleware, (req, res) => {
req.session.test2 = "hello world";
req.session.page_views = 1;
var username = req.body.username;
var password = req.body.password;
if (username && password) {
let sql =
"SELECT username, password, id FROM workers where username = ? AND password=?";
con.query(sql, [username, password], function (error, row, fields) {
if (row.length > 0) {
req.session.id = row.id;
console.log("???? ~ file: app.js ~ line 66 ~ req.session.id", req.session.id)
req.session.isLoggedIn = true;
req.session.username = row.username;
} else {
req.session.isLoggedIn = false;
res.send("Incorrect Username and/or Password!");
}
res.end();
});
} else {
res.send("Please enter Username and Password!");
res.end();
}
});
findByWorkerId
exports.findByWorkerId = function (req, res) {
const id = req.session.id;
console.log(
"???? ~ file: report.controller.js ~ line 28 ~ req.session.id",
req.session.id
);
if (!id) {
// 400 = bad request
return res.status(400).send("The required path variable id is missing");
}
if (req.session.isLoggedIn) {
Report.findByWorkerId(id, function (err, report) {
if (err)
return res
.status(500)
.send("Error occured during fetching report for id " + id);
console.log("report: ", report);
return res.send(report);
});
} else return null;
};
应用 js 配置
var mysql = require("mysql");
var express = require("express");
var session = require("express-session");
var bodyParser = require("body-parser");
var cors = require("cors");
var app = express();
app.use(cors());
var server = require("http").Server(app);
var port = process.env.PORT || 4000;
var con = require("./config/db");
app.use(
session({
secret: "Shh, its a secret!",
resave: false,
saveUninitialized: true,
})
);
// to support URL-encoded bodies
app.use(bodyParser.urlencoded({ extended: true }));
// to support JSON-encoded bodies
app.use(bodyParser.json());
谢谢你!!
【问题讨论】:
标签: javascript node.js express session express-session