ホームページ > 記事 > ウェブフロントエンド > ノード学習チャットモジュールシステム
この記事では、イベント モジュール、ユーティリティ モジュール、fs モジュール、OS モジュール、パス モジュールなどを含む、Node.js のモジュール システムについて説明します。お役に立てば幸いです。
Node.js ファイルが相互に呼び出せるようにするために、Node.js は単純なモジュール システムを提供します。Node.js には 4 種類のモジュールがあります (ネイティブ モジュールと 3 種類のファイル モジュール)モジュールは Node.js アプリケーションの基本コンポーネントであり、ファイルとモジュールは 1 対 1 に対応します。
つまり、Node.js ファイルはモジュールであり、このファイルは JavaScript コード、JSON、またはコンパイルされた C/C 拡張機能である可能性があります。
例:
var http = require("http");
Node.js には http というモジュールが付属しており、コード内でこれをリクエストし、戻り値をローカル変数に割り当てます。ロード モジュール:これにより、ローカル変数が、http モジュールによって提供されるすべてのパブリック メソッドを備えたオブジェクトに変換されます。 [関連チュートリアルの推奨事項:
nodejs ビデオ チュートリアル ]
//例子 //hello.js exports.world = function() { //相当于给function()函数取了个别名world() console.log('Hello World'); } //main.js var hello = require('./hello'); hello.world(); //访问 hello.js 的 world 函数 //结果 PS E:\learn> node main.js Hello World
モジュールの唯一の変更点インターフェイスは、exports.world = function(){} の代わりに module.exports = Hello を使用します。モジュールが外部から参照される場合、そのインターフェイス オブジェクトは、元のエクスポートではなく、出力される Hello オブジェクトそのものになります。
エクスポートと module.exports の使用プロパティまたはメソッドを外部に公開したい場合は、エクスポートを使用するだけです。オブジェクトを公開するには (同様の多くのプロパティやメソッドを含むクラスに追加するには、 module.exports を使用するだけです。
//hello.js function Hello() { var name; this.setName = function(thyName) { name = thyName; }; this.sayHello = function() { console.log('Hello ' + name); }; }; module.exports = Hello; //main.js var Hello = require('./hello'); hello = new Hello(); hello.setName('BYVoid'); hello.sayHello(); //结果 PS E:\learn> node main.js Hello BYVoid
require("events");
を使用します。
events
モジュールの唯一のクラスと同等です。このクラスには複数の属性があります
//例子 //event.js 文件 var events = require('events'); // 引入 events 模块 var emitter = new events.EventEmitter(); // 创建 eventEmitter 对象 //为事件someEvent注册两个监视器 emitter.on('someEvent', function(arg1, arg2) { console.log('listener1', arg1, arg2); }); emitter.on('someEvent', function(arg1, arg2) { console.log('listener2', arg1, arg2); }); //按顺序执行someEvent的每个监视器 emitter.emit('someEvent', 'arg1 参数', 'arg2 参数'); // 'arg1 参数', 'arg2 参数'为参数arg1,arg2的值
//结果 $ node event.js listener1 arg1 参数 arg2 参数 listener2 arg1 参数 arg2 参数
Node.js 共通ツール util 是一个Node.js 核心模块,提供常用函数的集合,用于弥补核心 JavaScript 的功能 过于精简的不足。 参考资料:Node.js 文件系统 参数: fs.stat(path)执行后,会将stats类的实例返回给其回调函数。可以通过stats类中的提供方法判断文件的相关属性 #fs.read(fd,buffer,offset,length,position,callback) fs.close(fd, callback) fs.ftruncate(fd, len, callback) fs.unlink(path, callback) fs.mkdir(path[, options], callback) fs.readdir(path, callback) fs.rmdir(path, callback) プロパティ: os.EOL ノード関連の知識の詳細については、nodejs チュートリアル##を参照してください。 # ! util.callbackify(original)
将 async 异步函数(或者一个返回值为 Promise 的函数)转换成遵循异常优先的回调风格的函数
//例子
const util = require('util');
async function fn() {
return 'hello world';
}
const callbackFunction = util.callbackify(fn);
callbackFunction((err, ret) => {
if (err) throw err;
console.log(ret);
});
//结果
hello world
util.inherits(constructor, superConstructor)
是一个实现对象间原型继承的函数。//例子
var util = require('util');
//Base构造函数内三个属性
function Base() {
this.name = 'base';
this.base = 1991;
this.sayHello = function() {
console.log('Hello ' + this.name);
};
}
//原型中定义的一个函数
Base.prototype.showName = function() {
console.log(this.name);
};
//Sub构造函数内一个属性
function Sub() {
this.name = 'sub';
}
util.inherits(Sub, Base); //Sub从Base继承
var objBase = new Base();
objBase.showName();
objBase.sayHello();
console.log(objBase);
var objSub = new Sub();
objSub.showName();
//objSub.sayHello();
console.log(objSub);
//结果
base
Hello base
{ name: 'base', base: 1991, sayHello: [Function] }
sub
{ name: 'sub' }
//Base 有 name , base , sayHello() , showName()
//Sub 有 name(自己定义的,不是继承的) , showName() 从Base继承的
util.inspect(object,[showHidden],[depth],[colors])
是一个将任意对象转换 为字符串的方法,通常用于调试和错误输出。它至少接受一个参数 object,即要转换的对象。
var util = require('util');
function Person() {
this.name = 'byvoid';
this.toString = function() {
return this.name;
};
}
var obj = new Person();
console.log(obj);
console.log(util.inspect(obj));
console.log(util.inspect(obj, true));
fs 模块
Node.js 文件系统模块 官网fs.open(path, flags[, mode], callback)
在异步模式下打开文件
callback(err, fd)
r
以读取模式打开文件。如果文件不存在抛出异常。r+
以读写模式打开文件。如果文件不存在抛出异常。rs
以同步的方式读取文件。rs+
以同步的方式读取和写入文件。w
以写入模式打开文件,如果文件不存在则创建。wx
类似 ‘w’,但是如果文件路径存在,则文件写入失败。w+
以读写模式打开文件,如果文件不存在则创建。wx+
类似 ‘w+’, 但是如果文件路径存在,则文件读写失败。a
以追加模式打开文件,如果文件不存在则创建。ax
类似 ‘a’, 但是如果文件路径存在,则文件追加失败。a+
以读取追加模式打开文件,如果文件不存在则创建。ax+
类似 ‘a+’, 但是如果文件路径存在,则文件读取追加失败。fs.stat(path, callback)
通过异步模式获取文件信息
callback(err, stats)
, stats 是 fs.Stats 对象。stats.isFile()
如果是文件返回 true,否则返回 false。stats.isDirectory()
如果是目录返回 true,否则返回 false。stats.isBlockDevice()
如果是块设备返回 true,否则返回 false。stats.isCharacterDevice()
如果是字符设备返回 true,否则返回 false。stats.isSymbolicLink()
如果是软链接返回 true,否则返回 false。stats.isFIFO()
如果是FIFO,返回true,否则返回 false。FIFO是UNIX中的一种特殊类型的命令管道。stats.isSocket()
如果是 Socket 返回 true,否则返回 false。fs.writeFile(file, data[, options], callback)
异步模式下写入文件
writeFile 直接打开文件默认是 w 模式,所以如果文件存在,该方法写入的内容会覆盖旧的文件内容。
## を返します。 非同期モードでファイルを読み取ります。このメソッドは、ファイル記述子を使用してファイルを読み取ります。 。
パラメータ:
fd - fs.open() メソッドによって返されるファイル記述子。
非同期モードでファイルを閉じます。このメソッドは、ファイル記述子を使用してファイルを読み取ります。
パラメータ:
fd - fs.open() メソッドによって返されるファイル記述子。
非同期モードでファイルをインターセプトするこのメソッドは、ファイル記述子を使用してファイルを読み取ります。
パラメータ:
fd - fs.open() メソッドによって返されるファイル記述子。
ファイル削除の構文形式:
パラメータ:
path - ファイルパス。
ディレクトリの作成
パラメータ:
path - ファイル パス
recursive - ディレクトリを再帰的に作成するかどうか、デフォルトは false です。
ディレクトリの読み取り
パラメータ:
path -ファイル パス
ディレクトリの削除
パラメータ:
path - ファイル パス
#OS モジュール #参考:
Node.js OS モジュール
オペレーティング システムの行末文字を定義する定数。 メソッド:
os.tmpdir()
オペレーティング システムのデフォルトの一時フォルダーを返します。 os.endianness()
CPU のエンディアンネスを返します (可能な場合)。 「BE」または「LE」です。 os.hostname()
オペレーティング システムのホスト名を返します。 os.type()
オペレーティング システム名を返します os.platform()
コンパイルされたオペレーティング システム名を返します os.arch()
オペレーティング システムの CPU アーキテクチャを返します。可能な値は「x64」、「arm」、および「ia32」です。 os.release()
オペレーティング システムのリリース バージョンを返します。 os.uptime()
オペレーティング システムの実行時間を秒単位で返します。 os.loadavg()
1 分、5 分、15 分の負荷平均を含む配列を返します。 os.totalmem()
システム メモリの合計量をバイト単位で返します。 os.freemem()
オペレーティング システムの空きメモリ量をバイト単位で返します。 os.cpus()
インストールされている各 CPU/コアに関する情報を含むオブジェクト配列を返します: モデル、速度 (単位 MHz)、時間 (1 つは user、nice、sys、idle、および irq オブジェクトを含みます) CPU/コアの使用ミリ秒数)。 os.networkInterfaces()
ネットワーク インターフェイスのリストを取得します。 #パス モジュールNode.js パス モジュール
##Net モジュール
Node.js ネット モジュール
##Node.js DNS モジュール
#ドメイン モジュール
#http モジュール
参考資料:
##url モジュール
#gulp モジュール #ES6 環境セットアップ
Webpack モジュール
Webpack 入門チュートリアル
以上がノード学習チャットモジュールシステムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。