概要
MEANとはアーキテクチャの一種で、以下のアプリケーションで構築されます。特徴として、データからクライアントまで全てJSONで扱えることがあげられます。
MongoDB - データベース
Express - MVCのWebアプリフレームワーク
Angular - クライアントサイドJSフレームワーク
Node - サーバーサイドJS環境
今回は、社内ツールを作る際に、
- 開発サーバーのリソース少ないし、railsほど重いものを動かしたくない
- でもルーティングとかいい感じにやってほしい
- MEANが流行り始めてるらしい
- JSなら触ったことがあるし、言語から覚える必要はない
ってことでMEANを採用しました。
導入
今回はページを生成して、ユーザーとインタラクションをする必要がなかったので、angularはいれてません。
Node
$ sudo su
# curl -sL https://rpm.nodesource.com/setup | bash -
# yum install -y nodejs
mongo
1 yumでインストール
cd /etc/yum.repos.d/
vi ./mongodb.repo
mongodb.repo
[mongodb]
name=MongoDB Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/
gpgcheck=0
enabled=1
yum install -y mongodb-org
2 パスを指定して、mongodを起動(デフォルトパスは/daba/dbなので、そこにディレクトリを掘れば、--dbpathオプションは不要)
mkdir -p /data/mongodb
mongod --dbpath /data/mongodb
3 mongodを常駐させる
chkconfig mongod on
service mongod start
express
$ npm init
$ npm install express
起動
サンプル作成
app.js
var express = require('express');
var app = express();
//ルーティング設定
app.get('/', function (req, res) {
res.send('Hello World');
});
//以下、ルーティング情報があればここに追記していく
app.listen(3000);
console.log('Server running at http://localhost:3000/');
参考: Node.jsのMVCフレームワーク「Express」の基礎知識とインストール
サーバー立ち上げ
$ node app.js
追加したモジュール
mongoose
mongoにスキーマを定義したりできる
mongoose
Mongoose - デベロッパーズガイド 日本語訳
forever
nodeで立ち上げたプロセスを常駐させることができる
node.js node.jsスクリプトをforeverでデーモン化する