2016-10-03 11 views
0

基本的にタイトルにあります。すべてのノードモジュールがオープンソースの場合、どのようにユーザー名とパスワードを非公開にしますか?同様に:ノードモジュールのクレデンシャルを非公開にするにはどうすればよいですか?

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

モジュールのダウンローダは、資格情報を表示できます。どうすればそれをできないのですか?

答えて

0

通常、公開されているコードではなく構成ファイルから資格情報を読み込み、設定ファイルのシェルのみを公開リポジトリに組み込みます。 Node.jsので

、設定ファイルを読み込むための最も簡単な方法の一つは、ファイル内のデータがJSONなるようにすることです、そしてあなただけのようrequire()でそれを読み込むことができるファイルに.jsonファイル拡張子を与える:

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

それでは、この設定ファイルをモジュールで共有することなく、どのようにこの設定ファイルにアクセスしますか? – baranskistad

+0

@bjskistad - あなたが何を求めているのか分かりません。コードをインストールするとき、セットアッププロセスの一部は、手動で正しいデータベースをインストールして作成するのと同じように、必要な設定ファイルを手動で作成または編集することです。必要に応じてconfigファイルを置いて、 'require()'で適切なパスを使用してそれに到達することができます。モジュールは設定ファイルを参照しますが、完全な機能を持つ設定ファイルは公開リポジトリに入れません。設定ファイルは、実行中にサーバーのソースファイルを保持する安全なサーバー側のディレクトリに置くだけです。 – jfriend00

1

ノードモジュールにクレデンシャルを含めないでください。悪い習慣とみなされます。ノードモジュールのユーザーが独自の資格情報を提供するための方法を提供します。たとえば、モジュールがクラスをエクスポートしたとします。あなたは、ユーザー名とパスワードを取るクラスコンストラクタを持つことができます。

また、すべてのノードモジュールはオープンソースではありません。 NPMはプライベートパッケージを(有料で)ホストする機能を提供するか、またはsinopiaのようなものを持っています。これにより、npmで使用するパッケージレジストリを自分でホストすることができます。

+0

モジュールにクレジットを入れない場合、彼はどのようにしてそれをDBに接続しますか? – baranskistad

+0

ノードモジュールを作成してnpmに公開した場合、そのノードモジュールにはクレデンシャルを保存しません。ノードモジュールを必要とする人は、私が上記のようなものを介して資格情報を提供するでしょう。たとえば、プロジェクトでは、Facebook SDKにアクセスするために使用できる 'fb'ノードモジュールが必要になる可能性があります。このモジュールには、setAccessToken関数があります。この関数を使用すると、モジュールに特定のSDK関数にアクセスするための認証情報を提供できます。 – Alan

+0

12factor.netをご覧ください。あらゆる種類のベストプラクティスであなたにはかなり啓発されます。 – Paul

関連する問題