微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用res.redirect时,快速会话未存储数据

如何解决使用res.redirect时,快速会话未存储数据

我正在使用express-session模块在2条路由之间发送数据。

这是场景。 当用户注册页面上创建帐户时,他将被重定向首页,但我应该在首页显示用户的“用户名”,表示“欢迎”。

为此,我使用了快速会话,但是由于某些原因,当我res.redirect('/)时,会话数据没有存储。

这是我的server.js代码

const express = require("express");
const app = express();
const bodyParser = require("body-parser");
const mongoose = require("mongoose");
const session = require("express-session");

mongoose.connect(
  "mongodb://localhost:27017/ONLINE_SHOPPING",{
    useNewUrlParser: true,useUnifiedTopology: true,},err => {
    if (!err) console.log("successfull");
    else console.log("Failed");
  }
);

//middle wares
app.use(express.static("public"));
app.use(
  bodyParser.urlencoded({
    extended: true,})
);
app.set("view engine","ejs");
app.use(
  session({
    secret: "some-random-secret-key",resave: false,saveUninitialized: false,})
);

require("./app/routes")(app);

app.listen(3000,() => console.log("app is running on port 3000"));

这是sign_up表单的发帖路线。

router.post("/sign_up",async (req,res) => {
  const User = mongoose.model("user",userSchema);
  req.body.homeAddress = "new nullakunta";
  try {
    const user = new User({
      name: req.body.username.trim(),email: req.body.email.trim(),password: req.body.password.trim(),homeAddress: req.body.homeAddress,});
    const result = await user.save();
    if (result != null || result != undefined) {

      req.session.username = result.username;
      req.session.cookie.expires = false;
      res.redirect("/");
      return;

    } else {
      res.send("account not created");
      return;
    }
  } catch (e) {
    res.send("account not created");
    return;
  }
});

如果您在上面的代码中看到,我将像这样req.session.username = result.username;来存储用户名

这是我的首页获取)路线。

router.get("/",(req,res) => {
  if (req.session.username != null || req.session.username != undefined) {
    console.log('user name is',req.username);
  }
  console.log(req.session);
  res.render("catalog");
});

每次我运行服务器并签名时,控件都不会进入主路径('/')中提到的if循环 以下语句console.log(req.session); ('/') route的输出

Session {
  cookie: { path: '/',_expires: null,originalMaxAge: null,httpOnly: true }
}
Session {
  cookie: { path: '/',httpOnly: true }
}

有人可以帮助解释问题所在吗?以及如何解决

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。