在express中正确使用app.set?

我目前正在跟随https://scotch.io/tutorials/authenticate-a-node-js-api-with-json-web-tokens 。 不过,我不明白需要…

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

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

这只是允许你通过app.settings.superSecret访问你的值,没有别的。

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

这真的归结为个人select。

我build议您通过express:expressjs.com/en/4x/api.html阅读文档

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

 var env = { production: { ... env vars }, local: { ... local vars } } export default env["production"]; // You would change something here or 

注意,这是一个非常基本的例子,你可以做什么来改变你的环境variables。 您可以简单地将env["production"] to env["local"]更改env["production"] to env["local"]来交换您的环境。

使用快速会话

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** }