edo1z blog

プログラミングなどに関するブログです

Node.js

Node.jsやってみる。

macは、El Capitan 10.11.5です。

ここでNode.jsをダウンロードしたり、ドキュメントを取得できたりする。 http://nodejs.jp/nodejs.org_ja/ Node.js v0.11.11 マニュアル & ドキュメンテーション

$ node -v
v0.11.11
$ npm -v
1.3.25

Node.jsは、サーバ側の言語。Nginxとかを使わないらしい。

//httpモジュールをインポート
var http = require('http');

//Webサーバーの設定
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(3000);

console.log('Server running at http://localhost:3000/');

(引用:いまさら聞けないNode.jsの基礎知識とnpm、Gulpのインストール (1/2)

これでWEBサーバ作ったことになる。Node.jsはWEBサーバで、nginx.confみたいなのが上記なんでしょうか??とりあえずやってみる。

~/nodejs/app.jsを作って、上記を書いた。その後、下記を実行。

$ node app.js
Server running at http://localhost:3000/

おー表示された。

nodejs

モジュール管理は、npmでやる。 ビルドツールは、GruntとかGulpとかでやるんだけど、最近はちょっと嫌われているようで、使わないでやるケースも多いらしい。Gulpのがまだ人気あるらしい。

npmでgulpをグローバルインストールする

$ npm install -g gulp

gulp用ディレクトリを作って、そこにgulpをインストールする

$ npm install gulp
$ gulp -v
[03:12:17] CLI version 3.9.1
[03:12:17] Local version 3.9.1

gulpfile.jsを作成してみる。

'use strict'
var gulp = require('gulp');

//watchタスク定義
gulp.task('watch', function () {
    //ファイルが変更されたらメッセージ表示
    gulp.watch('*', function (event) {
        console.log('File ' + event.path + ' was ' + event.type + ', running tasks...');
    });
});

//デフォルトタスクとしてwatch実行
gulp.task('default', function () {
    gulp.run('watch');
});

gulp実行

$ gulp

ファイルを追加したり、変更したり、削除したりすると、eventを検知して、event.path、event.typeとかが取得できる。これをもとにテストしたり、コンパイルしたりするんだろう。

ただ、上記コードだと、結構な頻度でエラーが出る。try-catchとかしっかりしたらOKになるのだろうか。

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

ここにあるコンテンツとドットインストールみたらいいかも。 「Node.jsでサーバサイドJavaScript開発入門」