kiyo_hikoのブログ

メモ+日記?

node.jsの勉強(1) - 始めた

デスクトップアプリ以外作ったことなくて無知なものだからWeb関連の勉強何でとっかかるか迷ってたけど、Javaだと覚えること多くて重そうなので先にNode.jsやることにしてた メモル
思い出を頼りになんとなく書いてるから間違ってるかもしれない

ここまでにやったこと

現場で通用する力を身につける Node.jsの教科書

現場で通用する力を身につける Node.jsの教科書

↑の1章と2章読んだ。サポペここ

セトアプ

  • node.jsをインストール
  • Eclipse LunaにNodeclipse入れる

あとemmet for Eclipse(だっけ)入れとくとかなり嬉しいはず

プロジェクト作る

新規プロジェクト → nodeプロジェクト

適当にプロジェクト名入れて完了すると、Hello, world的なものが既にできてる

サーバー起動とリクエスト受信部の分離

var server = require('http').createServer();
server.on('request', doRequest);

function doRequest(request, response) {
...
}

URLによって処理を分岐する

var path = require('url').parse(request.url);
switch (path.pathname()) {
case '/':
  var template = require('fs').readFile('template.html', 'UTF-8', function(error, data) {
    response.setHeader('Content-Type', 'text/html');
    response.write(data);
    response.end();
  }
  break;
default:
  response.setHeader('Content-Type', 'text/plain');
  response.write('page not found.');
  response.end();
}

↑でちょっとハマったこと

setHeaderとかendとかswitchを抜けたあとにまとめて殺れば楽じゃんと思ったが、node.jsのメソッド非同期に実行されるからreadFile噛ませると読み込まれなかった。

非同期だっての忘れてて思い出すまでちょっと時間を要した

ejs

なんかJSPみたいな記法でテンプレートの中にJSコードとか書ける

> npm install ejs

require ejsしたらなぜかEclipseから読めなくてハマった。


node.js - NodeJS - How to resolve "Cannot find module" error - Stack Overflow

理由がわからんままだったけどコマプロからnpm install ejsしまくってプロジェクトパスにcdしてnode hello-worldなんとか.jsやったら動いたので、そのままコマプロのnodeを止めてEclipseで起動したら動いた

ejsファイルをシンタックスハイライト対応にしてみる


node.js - how do i get eclipse to interpret .ejs files as .html? - Stack Overflow

ウィンドウ → 設定 → なんとか
でできた