windows下《七日間学会NodeJS》学習ノートの一つ--NodeJS基礎


何がNodeJSですかブラウザはJSを解析できます.NodeJSもJSを解析できます.ブラウザはJSを利用してDOMを操作し、NodeJSはJSを利用してディスクファイルを操作したり、HTTPサーバを構築したりします.NodeJSの著者がNodeJSを創造する目的は、高機能なWebサーバを実現するためであり、彼がまず重視するのは、イベントメカニズムと非同期IOモデルの優越性である.nodejsをインストールして、このブログの中のwindowsの下でnode.jsとnpmの仕事環境を構築します。を試験するかもしれません.再度、コマンドラインにnodeを入力し、nodeコマンドラインを入力し、console.log('Hello World!')を入力して、コンソールの出力Hello World!を見ることができます.hello.jsというJSファイルも作成できます.内容は以下の通りです.作成後、コマンドライン入力node hello.jsで実行しても、出力が見えます.3.モジュール化.NodeJSでは、JSコードを異なるJSファイルに合理的に分割し、一つのファイルはモジュールであり、ファイルパスはモジュール名である.モジュール作成時には、requireexportsmoduleの3つの予め定義された変数が使用されます.require:現在のモジュールにおいて、他のモジュールをロードして使用するために、モジュール名が入ってきて、モジュールを返してオブジェクトをエクスポートします.モジュール名は、相対パス(以./冒头)または绝対パス(以/またはC:などのディスクで始まる)を使用することができます.また、モジュール名のjs拡張子は省略することができます.以下は一例です.var foo 1=require('./foo')var foo 2=require('./foo.js')var foo 3=require('/home/user/foo')var foo 4=require('/home/user/foo.js')
// foo1 foo4               。
はさらに、JSONファイルをロードして使用することができる.
var data = require('./data.json');
export exportオブジェクトは現在のモジュールの導出対象であり、モジュール共有方法と属性を導出するために使用される.他のモジュールはrequire関数で現在のモジュールを使用した時に得られたのが現在のモジュールのexportオブジェクトです.以下の例では、公有法が導出される.exports.hello=function(){consolie.logs('Hello World!')};moduleはmoduleオブジェクトを通じて現在のモジュールに関するいくつかの情報にアクセスできますが、最も多くの用途は現在のモジュールの導出対象を置き換えることです.たとえばモジュール導出オブジェクトは標準的には普通のオブジェクトです.関数に変更するには、次のような方法があります.
module.exports = function () {
    console.log('Hello World!');
};
以上のコードの中で、モジュールのデフォルトのエクスポートオブジェクトを関数に置き換えます.モジュール初期化:一つのモジュールのJSコードはモジュールが初めて使用された時に一回だけ実行され、実行中にモジュールの導出対象を初期化します.その後、キャッシュされたエクスポートオブジェクトは、繰り返し利用される.メインモジュールは直接にコマンドラインパラメータを通してNodeJSに伝達し、プログラムを起動するモジュールをメインモジュールと呼びます.メインモジュールは、プログラム全体を構成する他のモジュールのスケジューリングを行います.例えばnode main.jsコマンドでプログラムを起動すると、メインモジュールとなります.完全な例は、例えば以下のディレクトリがあります.
- F:\hello\
    - util\
        counter.js
    main.js
において、counter.jsの内容は以下の通りである.
var i = 0;

function count() {
    return ++i;
}

exports.count = count;
は、このモジュールの内部にプライベート変数iを定義し、exportオブジェクトに公開方法countを導出する.メインモジュールmain.jsの内容は以下の通りです.
var counter1 = require('./util/counter');
var    counter2 = require('./util/counter');

console.log(counter1.count());
console.log(counter2.count());
console.log(counter2.count());
がこのプログラムを実行した結果、
$ node main.js
1
2
3
はcounter.jsがrequireによって二回初期化されたわけではありません.バイナリモジュールnodejsは命名用JSで作成したモジュールをサポートします.C/C++を使ってバイナリモジュールを作成することもできますが、バイナリモジュールを簡単に使用しないでください.