Open2

Node.js + Express + MongoDBでREST API

西ゴシック西ゴシック

MongoDBはmongooseを利用すると簡単に扱える
使用するには現在のプロジェクトでnpm install mongoose
使用するときはconst mongoose = require('mongoose')する
※import/exportでも使えるのかは今度調べる

西ゴシック西ゴシック

mongooseの基本は以下の3つ

  1. MongoDBへの接続
  2. スキーマの定義
  3. モデルの作成

上記3つが終わったら任意の処理(CRUD操作)ができる

MongoDBへの接続
ローカルにMongoDBをインストールしている前提で進める
基本的には以下の形で、xxx部分は使用しているDB名に適宜置換する
※ポート番号が他の値を取るかは別途調べる

const mongoose = require('mongoose')

mongoose.connect('mongodb://localhost:27017/xxx', {
  useNewUrlParser: true,
  useUnifiedTopology: true,
})
.then(() => console.log('✅ Connected to MongoDB!'))
.catch(err => console.error('❌ Connection error', err));

スキーマの定義
データの構造と考えていいかも
Userスキーマはidnameというプロパティを持っていて型はNumberStringである」みたいにバリデーションの役割もしてくれるようだ

// Userスキーマの定義
const UserSchema = new mongoose.Schema({
    id: Number,
    name: String,
})

モデルの作成
モデル名は必ず小文字かつ単数系にする(Userとか)
それを守るとMongoDBのデータベースに自動的にusersというコレクションが作成される

const User = mongoose.model("User", UserSchema)

その他の任意の処理
下記のようにモデルを作成した後はドキュメントの作成、検索、更新、削除が可能となる

const User = mongoose.model("User", UserSchema)

// 新規作成
const newUser = new User({ id: 4, name: "Daniel" })
newUser.save()

// 全件取得
const users = User.find()
// 特定のユーザーを取得
const userId = 1
const user1 = User.findOne({ id: userId })
// 更新
user1.name = "Newman"
user1.save()
// 削除
User.deleteOne({ id: userId })