LoginSignup
3
5

More than 5 years have passed since last update.

Node.js + MongoDBを導入する

Last updated at Posted at 2017-10-05

始めに

Homebrewの導入は済んでいる前提で進めていきます。
まだ導入していない方は調べて、インストールしてから以下に進んでください。

環境

macOS Sierra 10.12.6
Homebrew 1.3.4

Nodebrew導入

Node.jsのバージョン管理ソフトNodebrewを入れます。
NodebrewはHomebrewのパッケージとなっていますのでインストールしましょう。

$ brew install nodebrew

インストールしたら起動します。

$ nodebrew setup

この時にパスを設定するようにターミナルに表示されると思うので、その通りにパスを設定します。

\$ echo "export PATH=\$HOME/.nodebrew/current/bin:\$PATH" >> ~/.bash_profile
\$ source ~/.bash_profile

これでNodebrewの導入が完了しました。

Node.js導入

さて、それではNodebrewを用いてNode.jsをダウンロードします。

$ nodebrew ls-remote

このコマンドでインストールできるパッケージの一覧が見れます。
特に指定がなければ最新版を入れます。

$ nodebrew install-binary latest

latestの部分を先ほどのリストで見たバージョンに変えるとそれぞれのバージョンがインストールされます。最新版でよければこのままで自動的に最新版を探してくれます。

$ nodebrew use latest

インストールした中でどのバージョンを使うか指定します。バージョン切り替える際は、毎回このコマンドが必要ですのでお忘れなく。これでNode.jsの導入は終了です。

npmを使ってNode.jsのライブラリを管理

npm(Node Packaged Modules)とは、Node.jsのライブラリやパッケージを管理するソフトです。
Node.jsに標準で付属しているため既に導入されているはずです。

\$ npm install -g forever
\$ npm install -g express
\$ npm install -g express-generator

それぞれサーバーの再起動を自動で行ってくれるモジュール、上からWebパッケージの雛形を作るライブラリ、それを使うためのコマンドといった風になっています。

\$ express -e firstapp
$ cd firstapp

アプリ名をfirstappとして雛形を作り、ディレクトリに入ります。

$ npm install -d

依存するモジュールファイルをインストールします。

$ forever start bin/www

これでサーバーが立ち上がるので、ブラウザでhttp://localhost:3000を表示するとWebページの雛形が現れるはずです。

$ forever list
$ forever stop bin/www

これらのコマンドで起動しているサーバー一覧を取得して、止めることができます。

これでライブラリを導入してWebページを表示することができました。

MongoDB導入

ここからはMongoDBを導入していきます。
まずはインストールします。

$ brew install mongodb

必要となるディレクトリを管理者権限で作ります。
パスワードを聞かれたらパソコンを立ち上げる時に入力しているパスワードを入力します。

\$ sudo mkdir /var/lib/mongodb
$ sudo touch /var/log/mongodb.log

MongoDBがパソコンの起動とともにバックグラウンドで自動で立ち上がるように設定します。

$ brew services start mongodb

MongoDBとNode.jsを紐づけるためにMongooseというモジュールをインストールします。オプションでgを指定するとうまくいかなかったので注意。

$ npm install mongoose

以上で導入は全て完了しました。
参考サイトでは実際にDBにデータを格納して、表示する部分までやっています。

参考サイト

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5