七日間学会NodeJS-学習ノート
12510 ワード
ネットでnodeJS教程を発見しました。7日間学会NodeJSという名前で、タイトルはとても魅力的です。私は7日間でマスターできるとは期待していません。入門したいだけです。以下は私の学習ノートと遭遇した問題です。
教程のURL:http://nqdeng.github.io/7-days-nodejs/
システム環境:virtual Box uuntu 14.10
nodeJSバージョン:0.0.15
一、据え付ける
私は3つの方法を使って、バイナリファイル、appt getコマンド、コンパイルインストールをインストールしました。は、対応するシステムのバイナリファイルを公式サイトからダウンロードし、ダブルクリックしてインストールします。ウェブサイト:http://www.nodejs.org/download/ コマンドap-getを使ってuuntuでインストールします。コマンドは以下の通りです。 はホームページからソースをダウンロードして、コンパイルしてインストールします。ブログ園の記事を参考にしました。住所:http://www.cnblogs.com/hwpayg/archive/2012/11/04/2753404.html 二、モジュール
nodeJSでは、コードをモジュール化するのが一般的です。モジュールを作成する時、通常3つの変数を使います。require、export、module。 requireは、他のモジュールをロードして使用するために使用されます。例えば: exportは、現在のモジュールにおいて公有の方法と属性を導出するための導出対象であり、他のモジュールにおいてrequireを使用して得られるものがexportオブジェクトである。以下の例は公有の方法を導き出す。 moduleオブジェクトは、現在のモジュールの導出対象を置き換えるのによく使われる、現在のモジュールのいくつかの関連情報にアクセスすることができる。 三、カバン
いくつかのモジュールは複雑で、複数のサブモジュールからなる必要があります。複数のサブモジュールからなる大きなモジュールをカバンと呼びます。例えば:
四、コマンドラインプログラム
正常に、jsファイルを使う方式は node/home/user/bin/node-echo.js Hello World 。これは明らかにクールではないです。jsファイルをコマンドラインのように使ってほしいなら、 node-echo Hello World 。Linux環境では、次のような構成ができます。 jsファイルの上にコードを挿入する #! /usr/bin/env node ,現在のスクリプトを指定するための解析器です。 は、jsコードファイルの実行権限を付与する。 chmod+x/home/user/bin/node-echo.js ソフトチェーンを作成します。 sudo ln-s/home/user/bin/node-echo.js/usr/local/bin/node-echo このように私達は命令ラインプログラムを使うようにjsコードを使うことができます。
五、工程目録
普通、標準的な工程カタログはこのように見えます。
ファイル操作
大きなファイル操作
nodeJSはBufferクラスを使用してバイナリデータの操作を行います。例えば:
File System(ファイルシステム)
nodeJSは内蔵モジュールfsを通じてファイルに対する操作を提供します。fsのAPIは基本的に三つの種類に分けられます。ファイル属性操作、例えば:fs.stat fs.chmod fs.chowd ファイル内容操作:fs.readFile fs.readdir fs.writeFile fs.mkdir 底のファイル操作、例えば:fs.open fs.read fs.write fs.close fs.readFileを例にとって、fsのAPIの使い方を説明します。
七、ネットワークプログラミング
簡単なhttpサーバを作成します。
注意:1024以下のポートを傍受するには、root権限が必要です。
教程のURL:http://nqdeng.github.io/7-days-nodejs/
システム環境:virtual Box uuntu 14.10
nodeJSバージョン:0.0.15
一、据え付ける
私は3つの方法を使って、バイナリファイル、appt getコマンド、コンパイルインストールをインストールしました。
sudo apt-get install nodejs
sudo apt-get install npm
nodeJSでは、コードをモジュール化するのが一般的です。モジュールを作成する時、通常3つの変数を使います。require、export、module。
1 var foo1 = require('./foo');
2 var foo2 = require('./foo.js');
3 var foo3 = require('/home/user/foo');
4 var foo4 = require('/home/user/foo.js');
5
6 // JSON
7 var data = require('./data.json');
1 exports.hello = function () {
2 console.log('Hello World!');
3 };
1 module.exports = function () {
2 console.log('Hello World!');
3 };
いくつかのモジュールは複雑で、複数のサブモジュールからなる必要があります。複数のサブモジュールからなる大きなモジュールをカバンと呼びます。例えば:
// cat ,main.js
- /home/user/lib/
- cat/
head.js
body.js
main.js
この時、私たちはパッケージcatをロードする方式はrequireですが、ファイルにアクセスするように見えます。アクセス経路をより簡潔にするために、以下の調整が可能である。// package.json cat
- /home/user/lib/
- cat/
+ doc/
- lib/
head.js
body.js
main.js
+ tests/
package.json
その中で、package.jsonの内容は以下の通りです。1 {
2 "name": "cat",
3 "main": "./lib/main.js"
4 }
このように、パッケージcatをロードする方法は require('/home/user/lib/cat) 四、コマンドラインプログラム
正常に、jsファイルを使う方式は node/home/user/bin/node-echo.js Hello World 。これは明らかにクールではないです。jsファイルをコマンドラインのように使ってほしいなら、 node-echo Hello World 。Linux環境では、次のような構成ができます。
五、工程目録
普通、標準的な工程カタログはこのように見えます。
- /home/user/workspace/node-echo/ #
- bin/ #
node-echo
+ doc/ #
- lib/ # API
echo.js
- node_modules/ #
+ argv/
+ tests/ #
package.json #
README.md #
六、ファイル操作ファイル操作
1 var fs = require('fs');
2
3 function copy(src, dst) {
4 fs.writeFileSync(dst, fs.readFileSync(src));
5 }
6
7 function main(argv) {
8 copy(argv[0], argv[1]);
9 }
10
11 main(process.argv.slice(2));
上記のコードはsrcファイルの内容を一度にメモリに読み込んで、ディスクに一気に書き込みます。この操作は小さいファイルにしか使えません。ファイルが大きいとメモリが足りなくなります。大きなファイル操作
1 var fs = require('fs');
2
3 function copy(src, dst) {
4 fs.createReadStream(src).pipe(fs.createWriteStream(dst));
5 }
6
7 function main(argv) {
8 copy(argv[0], argv[1]);
9 }
10
11 main(process.argv.slice(2));
Buffer(データブロック)nodeJSはBufferクラスを使用してバイナリデータの操作を行います。例えば:
1 // Buffer
2 var bin = new Buffer([ 0x68, 0x65, 0x6c, 0x6c, 0x6f ]);
3
4 //
5 bin[0]; // => 0x68;
6
7 //
8 var str = bin.toString('utf-8'); // => "hello"
9
10 //
11 var bin = new Buffer('hello', 'utf-8'); // => <Buffer 68 65 6c 6c 6f>
Stream(データストリーム) 1 var rs = fs.createReadStream(src);
2 var ws = fs.createWriteStream(dst);
3
4 rs.on('data', function (chunk) {
5 if (ws.write(chunk) === false) {
6 rs.pause();
7 }
8 });
9
10 rs.on('end', function () {
11 ws.end();
12 });
13
14 ws.on('drain', function () {
15 rs.resume();
16 });
File System(ファイルシステム)
nodeJSは内蔵モジュールfsを通じてファイルに対する操作を提供します。fsのAPIは基本的に三つの種類に分けられます。
1 fs.readFile(pathname, function (err, data) {
2 if (err) {
3 // Deal with error.
4 } else {
5 // Deal with data.
6 }
7 });
七、ネットワークプログラミング
簡単なhttpサーバを作成します。
1 var http = require('http');
2
3 http.createServer(function (request, response) {
4 response.writeHead(200, { 'Content-Type': 'text-plain' });
5 response.end('Hello World
');
6 }).listen(8124);
注意:1024以下のポートを傍受するには、root権限が必要です。