Node.js 超初心者勉強会 in 大阪 #onsb

http://atnd.org/events/37147 のハッシュタグを中心としたまとめ。 講師 @kamiyam のお話はハッシュタグを前置、個人の感想やコメントはハッシュタグを後置しています(なるべく)。
6
tama #ハタチ @tamacjp

@null #onsb 実行中の node を終えるときは ctrl+C

2013-03-08 20:00:21
tama #ハタチ @tamacjp

@null #onsb 「npm install -g express」で express をインストールできる。 -g を付けるとどこからでも使えるようにグローバルにインストールされる。付けないときはローカル(アプリ内?)にインストールされる。

2013-03-08 20:01:12
tama #ハタチ @tamacjp

@null #onsb -g でインストールしても nodebrew use でバージョンを切り替えると使えない。バージョンに紐付いたグローバルにインストールされる。nodebrew migrate-package すると別バージョンのグローバルパッケージをインストールできる

2013-03-08 20:04:31
tama #ハタチ @tamacjp

@null #onsb 「express express_app」で express_app というディレクトリに express アプリを作る。express_app ディレクトリに cd して「npm install」すると必要なパッケージがダウンロードされる。

2013-03-08 20:07:03
tama #ハタチ @tamacjp

@null #onsb 今作ってるアプリ(これもひとつのパッケージ)の情報は package.json に書かれている。application-name は好きに変えてよい。README.md を作ると最初の WARN もなくなる。

2013-03-08 20:10:05
tama #ハタチ @tamacjp

@null #onsb node_modules/ さっきインストールした依存パッケージ。app.js 最初に実行するファイル。

2013-03-08 20:17:11
tama #ハタチ @tamacjp

@null #onsb views/layout.jade がテンプレート。views/index.jade がindexページの埋め込み。routes/index.js で title に "Express" を入れて index.jade を読み込んでいる。

2013-03-08 20:18:30
tama #ハタチ @tamacjp

@null #onsb views/index.jade でビュー、routes/index.js で変数を編集すると表示を変えられる。

2013-03-08 20:21:19
tama #ハタチ @tamacjp

@null #onsb jade はデフォルトのテンプレートエンジン。嫌い。ejs や jshtml というテンプレートエンジンにも切り替えられる。express -help

2013-03-08 20:22:57
tama #ハタチ @tamacjp

@null #onsb express() でアプリケーション作成。app.configure() で設定。app.get() で呼ばれたパスと処理する .js の紐付け。routes.index は routes/index.js の中の exports.index の名前

2013-03-08 20:27:10
tama #ハタチ @tamacjp

@null #onsb app.get('/', function(req, res){ … }); という書き方もできる。

2013-03-08 20:28:40
tama #ハタチ @tamacjp

@null #onsb app.get('/hello', routes.hello); して exports.hello を作れば http://127.0.0.1:3000/hello でアクセスできる

2013-03-08 20:28:44
tama #ハタチ @tamacjp

@null #onsb 毎回 node app.js するのが面倒な人は npm install -g supervisor して supervisor app.js するとNodeファイルの変更をウォッチしてくれる。再起動する必要がなくなる。

2013-03-08 20:30:47
tama #ハタチ @tamacjp

@null #onsb 今度はセッションを使って(-s) ejsというテンプレートエンジンを使った(-e) プロジェクトを作る。「express expressEjs -s -e」

2013-03-08 20:34:37
tama #ハタチ @tamacjp

@null #onsb ディレクトリ構成は変わらない。 views/index.jade のかわりに views/index.ejs になっている。

2013-03-08 20:37:09
tama #ハタチ @tamacjp

@null #onsb app.js のconfigureで view engine が ejs になっている。jadeより見やすいテンプレートエンジン。こっちの方が好き。

2013-03-08 20:40:06
tama #ハタチ @tamacjp

@null #onsb 未来の Node.jser のために。例えば less をインストールするとき、「npm install less --save」として package.json にパッケージ情報(バージョン情報)を書き出してほしい。そのためのオプション --save

2013-03-08 20:42:40
田中ひさてる @tanakahisateru

nom install … --save ええやんか

2013-03-08 20:43:06
tama #ハタチ @tamacjp

@null #onsb 明示的に「npm install less@1.3.2 --save」すれば 1.3.2 がインストールされ、package.json にも 1.3.2 が出力される。アンインストールは「npm uninstall less --save」

2013-03-08 20:44:50
tama #ハタチ @tamacjp

@null #onsb https://t.co/vADyXT3Quj をcloneして npm install して node app.js でサンプルを実行。ログインは kamiyam

2013-03-08 20:49:09
tama #ハタチ @tamacjp

@null Q: 全部 routes/index.js に書いていく? A: 大規模になると大変なので自前で分ける必要がある #onsb

2013-03-08 20:54:38
tama #ハタチ @tamacjp

@null #onsb req.session → セッションオブジェクト。indexでは userName があれば home にリダイレクト、なかったら index を出力。views/index.ejs は見た通り(ログイン情報をPOSTする)

2013-03-08 21:04:33
tama #ハタチ @tamacjp

@null #onsb app.js の app.get() はGETメソッド、app.post() はPOSTメソッド。

2013-03-08 21:05:32
tama #ハタチ @tamacjp

@null #onsb req.body がPOSTされたデータ。(URLのクエリ文字列は req.query らしい)

2013-03-08 21:08:20
tama #ハタチ @tamacjp

@null #onsb elsのテンプレートでは <% %> の中で for や if が使える

2013-03-08 21:12:44