如何将节点模块中的凭据保密?

How do I keep credentials in a node module private?

基本上在标题中。如果所有节点模块都是开源的,你如何保持用户名和密码的私密性?像这样:

// code
db.connect(username, password);
// more code

模块的任何下载者都可以看到凭据。我要怎么做才能让他们做不到?

您不会在节点模块中包含凭据,这将被视为不好的做法。您将为节点模块的用户提供某种方式来提供他们自己的凭据。例如,如果模块导出 class。你可以有一个 class 构造函数,它接受用户名和密码。

此外,所有节点模块都不是开源的。 NPM 也提供托管私人包的能力(收费),或者您有类似 sinopia 的东西,它可以让您自行托管一个包注册表以与 npm 一起使用。

通常,您会从配置文件(而不是从您的 public 共享代码)加载凭据,并且 public 中只会包含 shell 个配置文件存储库。

在node.js中,读取配置文件最简单的方法之一是使文件中的数据为JSON,然后给文件一个.json文件扩展名你可以用 require() 加载它,如:

const config = require('./config.json');