require() を使用してローカルファイルを読み込む
MongoDB Playgrounds で require() 関数を使用して、ローカル ファイルのコードを含めることができます。コードを 1 つの場所に保存し、そのコードを別のプレイグラウンドで再利用できます。
このタスクについて
このチュートリアルでは、 require()
を使用してローカルスクリプトを読み込む方法を説明します。 また、require()
を使用して、 npm からダウンロードしたノード モジュールをロードすることもできます 。詳しくは、 「 require() を使用して Node.js モジュールを含める 」を参照してください。
手順
1
スクリプト ファイルを作成する
次のスクリプト ファイルは、ドキュメントを検証し、必須 フィールドがあることを確認します。 スクリプトをvalidate.js
としてローカル ファイルシステムに保存します。
// validate.js const required_fields = [ 'name', 'email' ] const validate_data = (document) => { let is_valid = true; for (const field of required_fields) { if (document[field] == null) { is_valid = false; } }; return is_valid; }; module.exports = validate_data;
2
検証スクリプトを使用するプレイグラウンドの作成
次のプレイグラウンドでは、 require()
を使用して、 validate.js
で指定されたvalidate_data
関数を呼び出します。 validate_data
関数は 2 つのサンプル ドキュメントで呼び出されます。 ドキュメントに必須フィールドname
とemail
が含まれている場合、そのドキュメントはpeople
コレクションに挿入されます。
重要
プレイグラウンドの最初の行を、 validate.js
ファイルへのパスで更新します。
// playground-1.mongodb.js const validate = require('/path/to/validate.js'); use('mongodbVSCodePlaygroundDB'); const doc1 = { _id: 1, 'name': 'Taylor', 'email': 't123@gmail.com' }; const doc2 = { _id: 2, 'name': 'Taylor' }; const docs = [ doc1, doc2 ]; let inserted_count = 0; for (const doc of docs) { if (validate(doc)) { db.getCollection('people').insertOne(doc); inserted_count++; } }; console.log("Inserted " + inserted_count + " documents");
結果
必須 フィールドと コレクションに挿入されているフィールドの両方を含むのはdoc1
のみです。 doc2
には必須フィールドemail
が含まれていないため、挿入されていません。
正しいドキュメントが挿入されたことを確認するには、 people
コレクションをクエリします。
use mongodbVSCodePlaygroundDB db.people.find()
出力:
[ { _id: 1, name: 'Taylor', email: 't123@gmail.com' } ]