node.js
jsのローカル実装です。Linux系のOSなら簡単につかえるのでつかってみてください
hello, world
console.log("Hello, World!");これを、test.jsとかで保存して
$ node test.js
もしくは、直接インタプリタで
$ node
>console.log("Hello, World!");
"Hello, World!"みたいになる気がします。
Javascriptでしょ?なにができるの?
Javascriptですが、何でもできます。OSのAPIを直接たたくAPIが整備されているので、ファイルをいじったり、HTTPサーバーを立てることもできます。
どれくらいというと、Perlとかができることは大体できるんじゃないでしょうか?
使える機能は以下URLを参照(ドキュメントは Node.js 4.9 のもの)
http://nodejs.jp/nodejs.org_ja/docs/v0.4/api/
なにがいいの?
1、唯一ブラウザ上で動くJavascriptがサーバー上でも使える。つまり今からはじめるなら、サーバーとクライアントばらばらに2つの言語を覚えなくてもJavascriptだけ覚えれば複雑なこともそれなりにできる。
2、なんだかんだでいろいろ変わった書き方(便利な書き方)のできるJavascriptでデスクトップアプリケーションが書ける
3、Javascriptの楽な勉強環境になる(ブラウザの面倒なデバッガで勉強しなくてもいい!
4、nonblockingioなのでry(そんなこと知ってる人はこの記事読んでないと思うので略
たとえば
今日かいたWebサーバーのコード。ただしCoffeeスクリプトからの自動生成(ぉぃ
中身はdataRootにあるファイルをhash.jsonのハッシュにアクセスがあれば渡すというただのWebサーバー
(function() {
var dataRoot, fs, hash, http, url;
fs = require('fs');
http = require('http');
url = require('url');
hash = JSON.parse(fs.readFileSync('hash.json', 'utf-8'));
dataRoot = '/home/dasoran/cast/';
http.createServer(function(req, res) {
var parsedUrl, thisHash;
parsedUrl = url.parse(req.url);
thisHash = parsedUrl.pathname.slice(1, -1);
if (hash[thisHash] === void 0) {
console.log("debug:" + thisHash);
res.writeHeader(404);
res.end('err');
return;
}
return fs.readFile(dataRoot + hash[thisHash][0], function(err, data) {
if (err) {
throw err;
}
res.writeHeader(200, hash[thisHash][1]);
return res.end(data);
});
}).listen(8124);
}).call(this);