MERN

  • http://mern.io/documentation.html
    MERN はMongoDB, Express, React, NodeJS を組み合わせたスタックです。
    Ubuntu 16.04 でMERN を試してみました。

環境

項目
OS Ubuntu GNOME 16.04
node v6.3.1

サンプルの準備

$ sudo npm install -g mern-cli
$ mern init your_new_app
$ cd your_new_app
$ npm install
$ npm start

ポートが衝突した場合の対処

npm start を実行したところ、ポート8000 のリッスンに失敗したようなエラーが発生しました。

events.js:160
throw er; // Unhandled 'error' event
^

Error: listen EADDRINUSE :::8000
at Object.exports._errnoException (util.js:1012:11)
at exports._exceptionWithHostPort (util.js:1035:20)
at Server._listen2 (net.js:1252:14)
at listen (net.js:1288:10)
at Server.listen (net.js:1384:5)
...
[nodemon] app crashed - waiting for file changes before starting...

確認したところ、2016-07-09 にインストールしたサーバ管理ツールAjenti が使っていました。

$ sudo lsof -i:8000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ajenti-pa 4059 root 6u IPv4 30002 0t0 TCP *:8000 (LISTEN)

対策として、8000 ポートの代わりに8888 ポートを使うことにしました。

./your_new_app/server/config.js
const config = {
mongoURL: process.env.MONGO_URL || 'mongodb://localhost:27017/mern-starter',
port: process.env.PORT || 8888,
};

export default config;

実行

ブラウザでhttp://localhost:8888 にアクセスします。