パスの設定、Helloworld,ライブラリの依存関係の解決まで
nvmインストール
nvmをインストールすることでnode.jsのアップグレード、バージョン切り替えなどが容易になリます。
以下を参考に
https://github.com/creationix/nvm
ターミナルから以下のコマンド
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.4/install.sh | bash
バージョンは変わる可能性があるので注意することnvmのパスを通す
ホームディレクトリにある.bash_profileに追記する(ない場合は作成する)コマンドから、直接編集してもいい
cd ~
vi .bash_profile
vi .bash_profile
.bash_profile へ以下を追記
export NVM_DIR="/Users/[ユーザディレクトリ]/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
.bash_profileの再読み込み
コマンド
source ~/.bash_profile
あるいはターミナル再起動nvmがインストールされているか確認
nvm -v
nodejsのインストール
ターミナルからコマンド
nvm ls-remote
でインストール可能なnodeの一覧が取得できます。種類が多すぎて混乱するかもしれないですが
・iojsはフォークされて開発されていたもの。v4から統合された
・偶数バージョンが安定板
・v0.x系のものをインストールする記事が目立つがすでに推奨されていない
http://stackoverflow.com/questions/33551981/difference-between-nodejs-v0-12-and-v5-x-distributions
よって一番数字の大きい偶数のバージョンを選択すれば間違いないはずです
nodeのインストール
以下のコマンドで node.js ver6.9.5をインストール
nvm install v6.9.5
インストール直後ならnodeがそのまま使えるようですがターミナルを再起動すると使えなくなるのでパスを追加します。
cd ~
vi .bash_profile
vi .bash_profile
.bash_profile へ追記
export NVM_DIR="/Users/[ユーザディレクトリ]/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
# 以下を追記
# nvm設定
nvm use 6.9.5
npm_dir=${NVM_PATH}_modules
export NODE_PATH=$npm_dir
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
# 以下を追記
# nvm設定
nvm use 6.9.5
npm_dir=${NVM_PATH}_modules
export NODE_PATH=$npm_dir
nvm use [自分がインストールしたnodeのバージョン]
にすること
.bash_profileの再読み込み
コマンド
source ~/.bash_profile
あるいはターミナル再起動以下で確認
node -v
npm -v
バージョンが表示されればnodejsのインストール完了
node.jsでHello World
プロジェクトを作成するディレクトリへ移動してnpm init
cd /Users/[userName]/Project/nodejs/HelloWorld
npm init
npm init
対話的に設定項目を入力できます
あとで変更可能なのでよくわからない場合はエンター連打でOK
name: プロジェクトの名称
version: プロジェクトのバージョン
description: プロジェクト説明
entry point: エントリーポイント
test command: テスト時に実行するコマンド
git repository: リポジトリのURL
keywords: npm公開時の検索キーワード
author: 作成者名
license: ライセンス
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.
See `npm help json` for definitive documentation on these fields
and exactly what they do.
Use `npm install <pkg> --save` afterwards to install a package and
save it as a dependency in the package.json file.
Press ^C at any time to quit.
name: (test)
version: (1.0.0)
description: test
entry point: (index.js)
test command:
git repository:
keywords:
author:
license: (ISC) MIT
About to write to /Users/shinichiyamada/Project/nodejs/test/package.json:
{
"name": "test",
"version": "1.0.0",
"description": "test",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "MIT"
}
Is this ok? (yes) yes
It only covers the most common items, and tries to guess sensible defaults.
See `npm help json` for definitive documentation on these fields
and exactly what they do.
Use `npm install <pkg> --save` afterwards to install a package and
save it as a dependency in the package.json file.
Press ^C at any time to quit.
name: (test)
version: (1.0.0)
description: test
entry point: (index.js)
test command:
git repository:
keywords:
author:
license: (ISC) MIT
About to write to /Users/shinichiyamada/Project/nodejs/test/package.json:
{
"name": "test",
"version": "1.0.0",
"description": "test",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "MIT"
}
Is this ok? (yes) yes
package.json が作成される。
https://nodejs.org/en/about/ を参考にindex.js を作成して以下を入力
var http = require('http'); http.createServer(function(req,res){ res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hellow World!!'); }).listen(3000); console.log('Server running at http://localhost:3000/');
以下のコマンドを入力して http://localhost:3000/ へアクセス
node index.js
node index.js
Hello Worldと表示されたらOK
Express 導入
最近はプロジェクト毎に依存関係を解決するのがトレンドになっているようなのでそっちで導入します。
http://expressjs.com/ja/starter/installing.html に沿ってやっていきます。
プロジェクトディレクトリで以下のコマンド
npm install express --save
ディレクトリ直下にインストールされたあと package.json に以下が追加されます。
"dependencies": {
"express": "^4.14.1"
}
npm update を行うことでdependencies内のライブラリを更新することができます。"express": "^4.14.1"
}
^x.xx.xはx.xx.xと互換性のあるものという意味らしい
index.js を以下のように書き換えます。
var express = require('express'); var app = express(); app.get('/', function (req, res) { res.send('Hello Express!!'); }); app.listen(3000, function () { console.log('Example app listening on port 3000!'); });
コマンド
node index.js
実行後 http://localhost:3000/ へアクセスします。Hello Express!!
と表示されたら成功です。
このままでも実装可能ですが express-generator を使用してスケルトンアプリケーションを作成するほうが簡単のようなのでこれをグローバルインストールします。
npm install express-generator -g
以下のコマンドでexpressのアプリケーションのテンプレートを作成します。
express --view=jade expressApp
expressApp ディレクトリが作成され直下に
app.js
bin
package.json
public
routes
views
が作成されます。
コマンド
npm install
でpackage.jsonのdependenciesに記述されている依存関係をインストールします。コマンド
DEBUG=expressApp:* npm start
でサーバを起動します。http://localhost:3000/ へアクセスして
Express
Welcome to Express
Welcome to Express
と表示されたらOK
エディタはVisual Studio Code がおすすめ
以降は下記を参照のこと
参考
https://nodejs.org/ja/
http://expressjs.com/ja/
http://liberty-technology.biz/PublicItems/npm/package.json.html
http://qiita.com/tagosaku324/items/bf1fe149c38c99728c72