在运行时添加用户密码

我有一些节点的应用程序,应该得到用户密码运行,我不想把用户密码硬编码,但我想一些方法来在部署过程中传递它,就像当我做npm start命令行,并添加也将填写代码的用户密码,有一些最佳实践如何在节点中做到这一点?

在我search后,所以我find了这篇文章,但它没有帮助,因为你把代码放在configuration文件,这对我来说看起来是一样的,用户passowrd提供了我想要避免的代码…任何示例将很有帮助

在Node.Js / Express应用程序中存储数据库configuration的最佳方法

假设文件上的一个需要Runtime的用户密码…

例如

 request({ uri: API, method: 'POST', json: true, form: { 'username': 'user123', 'password': 'password123' }, 

我想要的是类似于这种方法,(或有更好的东西,我想了解如何使用它)

  request({ uri: API, method: 'POST', json: true, form: { 'username': ~username, 'password': ~password }, 

在部署期间运行以下命令

npm start username user123 password password123

你可以使用环境variables

假设您有一个名为USERNAME的环境variables。
你可以像这样在你的Node.js应用程序中访问它:

 console.log( process.env.USERNAME ) 

您可以在启动应用程序时提供环境variables,如下所示:

 USERNAME=example npm start 

你也可能想要检查这个叫做dotenv的超酷项目,它将加载环境variables形成一个.env文件。

您可以将.env添加到.gitignore ,凭据不会随代码一起提供。

你最好的select是有一个外部configuration文件,并从中读取用户名和密码configuration。 :)您将需要确保您的Web应用程序不向公众提供configuration文件。 所以我build议把configuration放到比你的服务器更高级别的目录下,这样你就不会意外地服务你的configuration。

不久之前,我已经构build了一个类似的应用程序。 我的文件夹结构如下:

 root |- app // App logic (Not accessible in front-end) |- templates // Template files (Not accessible in front-end) |- static // Static files (Accessible in front-end) |- config // Config files (Not accessible in front-end) |- config.json // Config file (Not accessible in front-end) |- index.js // Example JS file 

如果将config/config.json添加到.gitignore文件中,假设您使用git,则在推送到生产时,它不会被传输。 这意味着您必须在生产环境中自己创build一个config.json文件,该文件可以保存与开发环境configuration不同的数据。

示例config.json:

 { "username" : "username1", "password" : "password123" } 

如果您在index.js需要密码,请执行以下操作:

 const fs = require('fs'); fs.readFile('./config/config.json', function(err, data) { if (!err) { const data = JSON.parse(data); const username = data.username; const password = data.password; // Use password here or store it in a local variable to use it later } });