初めて知ったnode

1902 ワード

ノードベース


ブラウザの動作原理(Nodeの利点):イベント駆動(イベントポーリング)と非ブロックIO処理(非同期IO)の従来のサーバは同期IO操作であり、スレッド方式でマルチ同時サービスを処理し、スレッドは追加のシステムリソースを消費する.

Nodeは簡単な非同期プログラムを構築する

var fs = require("fs");
fs.readFile("./resurce.json", function(err, data) {
  console.log(data);
});


ここでfsはnodeが持参したモジュールで、ハードディスクファイルを読み取るために使用されます.Nodeスタイルは、エラーを優先的に処理するので、コールバックの最初のパラメータはerrです.

ノード構築HTTPサーバ

var http = require('http');
http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello World
'); }).listen(3000); console.log(" :http://localhost:3000");

データ・フロー


データストリームは特殊な配列と見なすことができるが,配列中のデータは空間的に分散し,データストリーム中のデータは時間的に分散している.データを1つ1つ転送することで、開発者はデータが到着するまで処理を開始するのではなく、1つのデータを受け取るたびに処理を開始することができます.(メモリ節約)
var steam = fs.createReadStream('./resource.json');
// data 
stream.on('data', function (chunk) {
    console.log(chunk)
});
// 
stream.on('end', function () {
    console.log('finished');
})

パイプ本


データフローは、pipe()パイプを介して処理することができる.
var http = require('http');
var fs = require('fs');
http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    // 
    fs.createReadStream('./image/png').pipe(res);
}).listen(3000);
console.log(" :http://localhost:3000");

モジュール


モジュールの作成


モジュールがディレクトリである場合、ノードは通常、このディレクトリの下にindexというディレクトリを探します.jsのファイルはモジュールのエントリexports = module.exportsとして使用される

モジュールのエクスポート

exports.fun=fun

モジュールの使用

require(./fun.js)

非同期


on():応答イベントonce():応答一次イベントemit():送信イベント