在Express中正确使用app.set?

时间:2016-09-14 05:56:26

标签: node.js express

我目前正在关注https://scotch.io/tutorials/authenticate-a-node-js-api-with-json-web-tokens。但是,我不明白......的需要。

app.set('superSecret', config.secret);

...当您可以继续使用config.secret时。有人可以向我解释这个吗?非常感谢。

2 个答案:

答案 0 :(得分:1)

这只是让您通过app.settings.superSecret访问您的值,而不是其他任何内容。

关于这一点的好处是,您不必继续将config对象导入每个文件!您可以直接从 app.settings 中获取值。

这真的取决于个人选择。

我建议您阅读express:expressjs.com/en/4x/api.html

上的文档

全局配置文件的原因是您可以使用特定环境并 隐藏 来自github或bitbucket(某种版本控制服务)的秘密数据。您不会将您的秘密细节上传到github,bitbucket或任何其他类似的服务。当我说环境时我的意思是生产,开发,本地等等。你可以在配置文件中有一个返回特定对象的函数。 E.g

var env = {
  production: {
  ... env vars
  },
  local: {
  ... local vars
  }
}

export default env["production"]; // You would change something here or

请注意,这是您可以执行的更改环境变量的基本示例。您只需更改env["production"] to env["local"]即可更换您的环境。

答案 1 :(得分:0)

使用express session

<强> server.js

var config = require('./config');
var session = require('express-session');
 app.use(session({
    saveUninitialized: true,
    resave: true,
    secret: config.sessionSecret
 }));

<强> config.js

module.exports = {
 sessionSecret: "very-secret" // or if loading from your .env **sessionSecret:process.env.SECRET**
}