Nodejsコアモジュール概要
github記事のリンク:https://github.com/Vibing/blo...
nodejsを学ぶには、JavaScriptを学ぶには、関数、オブジェクト、データの種類、BOM、DOMなどを身につけなければなりません.
イベント
イベントドライブ、非ブロックIOはnodejsの特徴ですので、Eventsは非常に重要なモジュールです.
イベントは購読モードをリリースすることで実現されます.ブラウザでは、例えば
上にも言ったように、nodeの中のほとんどのモジュールはEventsを継承しています.例えば、stream、fs、httpなどです.ブラウザのclickのように、元々あったものです.下を見たら、事件をたくさん使うところがあります.
fsファイルシステムモジュール
fsの全綴りは
fs.statはフォルダとファイルに関する情報を取得します.
フォルダ情報を表示
私たちは内容を上書きするのではなく、追加するのであれば、アプリを使うことができます.
水の流れと理解できる.ただここはデータフローです.流れの意味は3つです.ソースがあります. 終点があります. .ソースから終点まで流れる streamを使ってファイルを読み、書きます.
コードからもわかるように、StreamはEventsを継承しています.data、error、endなどのイベントが含まれています.
pipeを使う
上のコードを変えます.
Httpモジュール
httpモジュールは主にhttpサービスを構築し、ユーザー要求情報などを処理するために使用されます.
httpを使ってお願いします
後の文章は引き続き紹介します.詳しいアプリは公式サイトを参照してください.
nodejsを学ぶには、JavaScriptを学ぶには、関数、オブジェクト、データの種類、BOM、DOMなどを身につけなければなりません.
nodejs
コアも多く、ここではいくつかのコアを紹介します.Eventsモジュール、fsモジュール、streamの使用、httpモジュール.イベント
イベントドライブ、非ブロックIOはnodejsの特徴ですので、Eventsは非常に重要なモジュールです.
node
のほとんどのモジュールはEvents
を継承している.イベントは購読モードをリリースすることで実現されます.ブラウザでは、例えば
click
イベントがあります.$('button').on('click',()=>{
// click
})
もちろん、イベントをカスタマイズすることもできます.//
$('div').bind('hello',()=>{
alert('hello')
});
//
$('div').trigger('hello');
nodeではEventsモジュールはどうやって使いますか?クラスを定義して、Eventsを継承します.const EventEmit = require('events');
//
class Player extends EventEmit { }
const player = new Player();
//
player.on('play', ( param )=>{
console.log(` 《${param}》`)
})
play.emit('play',' '); // 《 》
play.emit('play',' '); // 《 》
イベントを一回だけ実行したいなら、Onceを使うことができます.//
player.once('play', ( param )=>{
console.log(` 《${param}》`)
})
play.emit('play',' ');
play.emit('play',' ');
この時はプレーヤーをプリントアウトして「天地をはだけ」を再生します.上にも言ったように、nodeの中のほとんどのモジュールはEventsを継承しています.例えば、stream、fs、httpなどです.ブラウザのclickのように、元々あったものです.下を見たら、事件をたくさん使うところがあります.
fsファイルシステムモジュール
fsの全綴りは
file system
、すなわちファイルシステムである.ファイルシステムである以上、その主な役割はファイルの新規作成、修正内容、読み書きなどです.fs.statはフォルダとファイルに関する情報を取得します.
フォルダ情報を表示
fs.stat('./logs', (err, stats) => {
if (err) {
console.log(err);
return;
}
console.log(' :', stats.isDirectory());
console.log(' :', stats.isFile());
console.log(' :', stats.size);
});
//
: true
: false
: 160
ファイル情報を表示fs.stat('./fs.js', (err, stats) => {
if (err) {
console.log(err);
return;
}
console.log(' :', stats.isDirectory());
console.log(' :', stats.isFile());
console.log(' :', stats.size);
});
//
: false
: true
: 2087
fs.mkdir作成フォルダ//
fs.mkdir("./logs", err => {
if (err) {
console.log(err);
return;
}
console.log("logs ");
});
fs.mkdir
は非同期的な方法であり、同期したい場合はfs.mkdirSync
を使用することができる.fs.mkdirSync('./logs2'); //
fs.writeFile書き込み内容fs.writeFile('./logs2/hello.log', ' ~', err => {
if (err) {
console.log(err);
return;
}
console.log(' ');
});
注意:ファイルが存在しないとファイルを作成します.ファイルに内容があれば上書きします.私たちは内容を上書きするのではなく、追加するのであれば、アプリを使うことができます.
fs.appendFile("./logs/hello.log", "hello~
", err => {
if (err) {
console.log(err);
return;
}
console.log(" ");
});
fs.readFileはファイルの内容を読み取ります.//
fs.readFile("./logs/hello.log", "utf8", (err, stats) => {
if (err) {
console.log(err);
return;
}
console.log(stats);
});
fs.readdir読み取りフォルダ//
fs.readdir("./logs", (err, files) => {
if (err) {
console.log(err);
return;
}
console.log(files); //
});
//
[ 'data-write.json', 'data.json', 'traking.log' ]
fs.renameがファイル名を変更します.// hello.log tranking.log
fs.rename("./logs/hello.log", "./logs/traking.log", err => {
if (err) {
console.log(err);
return;
}
console.log(" ");
});
ディレクトリのすべてのファイルを削除します.//
fs.readdirSync("./logs").map(file => {
// unlink
fs.unlink(`./logs/${file}`, err => {
if (err) {
console.log(err);
return;
}
console.log(" ");
});
});
フォルダを削除//
fs.rmdir("./logs", err => {
if (err) {
console.log(err);
return;
}
console.log(" ");
});
Stream流水の流れと理解できる.ただここはデータフローです.流れの意味は3つです.
const fs = require('fs');
const fileReadStream = fs.createReadStream('./logs/data.json');
const fileWriteStream = fs.createWriteStream('./logs/data-write.json');
/* */
fileReadStream.on('data', chunk => {
fileWriteStream.write(chunk); //
});
fileReadStream.on('error', err => {
console.log(' :', err);
});
fileReadStream.on('end', () => {
console.log(' ');
});
上のコードには、読み取り可能なストリーム-->書き込み可能なストリームが確立されています.これは上で述べた3つの点を満たしています.ソース(読み取り可能なストリーム)があり、終点(書き込み可能なストリーム)があり、ソースから終点まで(一つのファイルのデータが他のファイルに流れています).コードからもわかるように、StreamはEventsを継承しています.data、error、endなどのイベントが含まれています.
pipeを使う
上のコードを変えます.
// pipe
fileWriteStream.on('pipe', source => {
console.log(source);
});
/* pipe */
fileReadStream.pipe(fileWriteStream);
pipeは、水道管として理解され、読み取り可能なストリームと書き込み可能なストリームとの間に水道管が接続されており、dataイベントを監視する必要がなく、同じ効果を達成するために使用しやすいです.Httpモジュール
httpモジュールは主にhttpサービスを構築し、ユーザー要求情報などを処理するために使用されます.
httpを使ってお願いします
const http = require('http');
// http
const options = {
protocol: 'http:',
hostname: 'www.baidu.com',
port: '80',
method: 'GET',
path: '/img/baidu_85beaf5496f291521eb75ba38eacbd87.svg'
};
let responseData = '';
const request = http.request(options, response => {
console.log(response.statusCode); //
response.setEncoding('utf8');
response.on('data', chunk => {
responseData += chunk;
});
response.on('end', () => {
console.log(responseData);
});
});
request.on('error', error => {
console.log(error);
});
request.end();
httpを使ってサービスを作成します.// http
const port = 3000;
const host = '127.0.0.1';
const server = http.createServer();
server.on('request', (request, response) => {
response.writeHead(200, {
'Content-Type': 'text/plain'
});
response.end('Hello World
');
});
server.listen(port, host, () => {
console.log(`Server running at http://${host}:${port}/`);
});
Nodeコアモジュールについては、Buffer、crypt暗号化、globalグローバル変数、netネットワーク、OS OS OS OSなどがありますが、上で紹介したのは使用頻度が非常に高いモジュールです.後の文章は引き続き紹介します.詳しいアプリは公式サイトを参照してください.