Open2
Node.js + Express + MongoDBでREST API

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

mongooseの基本は以下の3つ
- MongoDBへの接続
- スキーマの定義
- モデルの作成
上記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
スキーマはid
とname
というプロパティを持っていて型はNumber
とString
である」みたいにバリデーションの役割もしてくれるようだ
// 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 })