【问题标题】:express-session deprecated req.secret; provide secret option app.js:27:9不推荐使用 express-session req.secret;提供秘密选项 app.js:27:9
【发布时间】:2020-12-04 14:43:40
【问题描述】:

我输入了 npm start 来运行我的程序,但这是 U 在终端中收到的评论:express-session deprecated req.secret;提供秘密选项 app.js:27:9。我不明白这个问题需要如何解决。 这是来自 app.js:27:9 的代码

app.use(session({
    store: new FileStore(),
    secret: process.env.SESSION_SECRET,
    resave: false,
    saveUninitialized: true,
    is_logged_in: false,
}))

【问题讨论】:

  • 检查SESSION_SECRET是否存在

标签: deprecated express-session


【解决方案1】:

确保您在 .env 文件中添加了 SESSION_SECRET。 如果是,那么在你的 app.js 中,添加这个

const dotenv = require('dotenv').config()

【讨论】:

    【解决方案2】:

    如果您在 Linux 服务器上运行: 在此处添加环境变量

    edit /etc/environment
    

    添加:

    export SESSION_SECRET="Ssdsd@#e$#Rfe@#$d#$#"
    

    您可以检查这是否正确创建:

    printenv or printenv SESSION_SECRET
    

    ..是的,在你的快递中:

    const dotenv = require('dotenv').config() 
    
    app.use(session({
        secret: process.env.SESSION_SECRET
    });
    

    【讨论】:

    • 我也添加了 .env 文件和 dotenv 包配置。但我仍然收到不推荐使用的警告消息' express-session deprecated req.secret;提供秘密选项'。我发现 env 变量值有些空我已经修改了秘密行:process.env.SESSION_SECRET || 'myvaluehere' 现在警告消失了。谢谢
    • 但是写secret有什么用:process.env.SESSION_SECRET || '我的价值在这里'。我们使用 dotenv 来隐藏秘密,并且通过执行您提到的操作,打开 app.js 的人可以轻松访问该 vaule。相反,您可以直接编写它而不使用 dotenv
    【解决方案3】:

    如果您已经在 .env 文件中添加了 SESSION_SECRET(SESSION_SECRET='this is my session'),请在 app.js 文件中添加类似于以下内容的 dotenv:

    const dotenv = require('dotenv').config({path:'./.env'});

    提及路径很重要,否则它不会从 .env 文件中检测到 SESSION_SECRET。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-26
      • 1970-01-01
      • 2015-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多