step2.mongooseを用意しよう
ステップ1の続きです。
node.jsからMongoDBにアクセスするためのライブラリにmongooseというのがあります。
mongooseについて詳しく知りたい人は「node.js+express+mongo環境にmongooseを使う」を先に呼んでください。
何はともあれ環境確認です。
$ mongod --version
db version v3.6.1
git version: 025d4f4fe61efd1fb6f0005be20cb45a004093d1
OpenSSL version: OpenSSL 1.0.2p 14 Aug 2018
allocator: system
modules: none
build environment:
distarch: x86_64
target_arch: x86_64
それではmongooseを入れてikimasyou
mongooseをinstallする
前回作成したプロジェクトの中でnpm installしていきます。
VSCodeで開くとその中でターミナルを実行出来るので便利です。
$ npm install mongoose --save
mongoose@5.5.5
added 22 packages from 17 contributors and audited 180 packages in 2.475s
found 0 vulnerabilities
これでインストールは完了ですζ(*’ω’*)ζ
mongooseを使用するために呼び出す
まずはapp.jsを開いて下さい。
var createError = require('http-errors'); var express = require('express'); var path = require('path'); var cookieParser = require('cookie-parser'); var logger = require('morgan'); var indexRouter = require('./routes/index'); var usersRouter = require('./routes/users'); var app = express();
ここにmongooseを書き足します。
var createError = require('http-errors'); var express = require('express'); var path = require('path'); var cookieParser = require('cookie-parser'); var logger = require('morgan'); var mongoose = require('mongoose'); var indexRouter = require('./routes/index'); var usersRouter = require('./routes/users'); var app = express();
これでmongooseオブジェクトが使えるようになります。
サーバーに接続する
mongoose.connect('mongodb://localhost:27017/todolist', { useNewUrlParser: true });
って書くだけです。メッチャ簡単。
今回はtodolistというDB名で作成します。
「node.js+express+mongo環境にmongooseを使う」を読んで頂いたら詳しく書いてます。
var createError = require('http-errors'); var express = require('express'); var path = require('path'); var cookieParser = require('cookie-parser'); var logger = require('morgan'); var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost:27017/todolist', { useNewUrlParser: true }); var indexRouter = require('./routes/index'); var usersRouter = require('./routes/users'); var app = express();
こんな感じ。
routes/index.jsでもmongooseを読み込む
これ以降はindex.jsに追記していきます。
var express = require('express'); var router = express.Router(); /* GET home page. */ router.get('/', function(req, res, next) { res.render('index', { title: 'Express' }); }); module.exports = router;
デフォルトではこんな感じになってると思います。
ここに再度mongooseを読み込みます。
var express = require('express'); var router = express.Router(); var mongoose = require('mongoose'); /* GET home page. */ router.get('/', function(req, res, next) { res.render('index', { title: 'Express' }); }); module.exports = router;
Schemaを設定する。
dbでどんなデータを管理するかSchemaを記述していきます。
var express = require('express'); var router = express.Router(); var mongoose = require('mongoose'); var Schema = mongoose.Schema; var Docs = new Schema({ name: String, age: Number, date: { default: Date.now, type: Date, } }); var todoModel = mongoose.model('docs', Docs); /* GET home page. */ router.get('/', function(req, res, next) { res.render('index', { title: 'Express' }); }); module.exports = router;
Schemaの内容はちょっとアレですがデモなので許してください(^_^;
これで準備は完了しました。
次回のステップで機能を作っていきましょう。