(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【入門】Node.jsでMongoDBに値を書き込むハンズオン(後編)

スポンサーリンク

はじめに

以下の記事の後編です。

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を触る方の参考になれば幸いです。