首页 > 解决方案 > 使用 connect-mongo 包将会话 cookie 从护照存储到 Mongo DB 的正确语法是什么?

问题描述

我正在观看视频教程并遇到了这种语法。但它不起作用。

const db = require("./config/mongoose");
const session = require("express-session");
const MongoStore = require("connect-mongo")(session);

app.use(cookieParser());
app.use(
  session({
    name: "SocialMedia",
    secret: "Social-Media",
    saveUninitialized: false,
    resave: false,
    cookie: {
      maxAge: 1000 * 60 * 100,
    },
    // MongoStore helps store the session cookie data in the db
    store: new MongoStore(
      {
        mongooseConnection: db,
        autoRemove: "disabled",
      },
      (err) => {
        console.log(err || "session cookie data stored successfully");
      }
    ),
  })
);
app.use(passport.initialize());
app.use(passport.session());

这是 conifg/mongoose.js 文件-

const mongoose = require("mongoose");

mongoose.connect("mongodb://localhost:27017/socialMedia", {
  useNewUrlParser: true,
  useUnifiedTopology: true,
});

const db = mongoose.connection;

db.on("error", console.error.bind(console, "Error connecting to MongoDB"));

db.once("open", function () {
  console.log("Connected to Database :: MongoDB");
});

module.exports = db;
  1. 上面使用 connect-mongo 包存储会话 cookie 数据的语法是否错误?

  2. 我在文档中知道它说const MongoStore = require("connect-mongo").default;,然后在参数中使用mongoUrl参数store。mongoUrl 参数中应该放什么?我应该只添加这个网址mongodb://localhost:27017/socialMedia吗?

标签: node.jsmongodbsessionmongoosecookies

解决方案


推荐阅读