はじめに
以下の記事の後編です。
MongoDBの書き込み先は既に作成済の以下です。
DB | Collections |
---|---|
test | user |
環境情報
- Ubuntu : 20.04
- Node.js : v10.19
- MongoDB : v3.6
MongoDBに書き込むサンプルプログラム
const mongodb = require('mongodb') const MongoClient = mongodb.MongoClient MongoClient.connect('mongodb://localhost:27017/test', (err, client) => { const db = client.db('test'); console.log("Connected successfully to server") insertDocuments(db, () => { client.close() }) }) const insertDocuments = (db, callback) => { const documents = [ { name:'akiko', age:19 } ] db.collection('user').insertMany(documents, (err, result) => { console.log("Inserted 1 user") callback(result) }) }
ただしrequire('mongodb')
を行うべく事前にnpmコマンドでパッケージのインストールが必要です。
# npm install mongodb
実行結果
console.logに指定したメッセージが出力されており
# node testmongo.js Connected successfully to server Inserted 1 user
MongoDB上でも値が追記されていることが確認できます。
> use test switched to db test > db.user.find() { "_id" : ObjectId("5f6da88574da9a1cb1d7560a"), "name" : "taro", "age" : 15 } { "_id" : ObjectId("5f6db3c01c46e722660ee61f"), "name" : "akiko", "age" : 19 }
エラーハンドリング
npmでインストールできていない。
Error: Cannot find module 'mongodb'
clientと記載すべき箇所がdbとなっている。
TypeError: db.collection is not a function TypeError: db.close is not a function
DBの変数宣言const db = client.db('test');
がない。
ReferenceError: db is not defined
終わりに
Node.jsでは以下二行を利用するだけで
const mongodb = require('mongodb') const MongoClient = mongodb.MongoClient
Node.js上の機構でエラーハンドリングしながらMongoDBに接続できます。
本記事が初めてNode.jsを触る方の参考になれば幸いです。