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の内容はちょっとアレですがデモなので許してください(^_^;

これで準備は完了しました。

次回のステップで機能を作っていきましょう。

あわせて読みたい