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);