初めて知った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():送信イベント
var fs = require("fs");
fs.readFile("./resurce.json", function(err, data) {
console.log(data);
});
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");
var steam = fs.createReadStream('./resource.json');
// data
stream.on('data', function (chunk) {
console.log(chunk)
});
//
stream.on('end', function () {
console.log('finished');
})
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");