Nodejsでグローバル変数を定義するにはどうすればよいですか?
global を使用して、nodejs でグローバル変数を定義します。定義された変数は、インポートされたファイルからもアクセスできます。たとえば、a.js
global.xxx = 'xxx'
require('xxx.js')
xxx.js からも変数にアクセスできます。ブラウザでは、定義したグローバル変数はすべてウィンドウ内に表示され、 nodejs はグローバルです、異なる環境を判断する必要があるため、 ECMAScript 2020 でglobalThis
グローバル変数が登場しました。これは、nodejs 環境では自動的にグローバルに切り替わり、ブラウザ環境では自動的にウィンドウを切り替えるので非常に便利です
その他のグローバルAPIについて
nodejsにはDOMやBOMがないため、これらのAPI以外は基本的に他のECMAscript APIが利用可能です
例えば
setTimeout setInterval Promise Math console Date fetch(node v18) 等...
これらの API は通常どおり使用できます
nodejs 組み込みグローバル API
__dirname
現在のモジュールの目录
絶対パスを表します
__filename
文件
ファイル名とファイル拡張子を含む現在のモジュールの絶対パスを表します。
require module
モジュールのインポートとモジュールのエクスポートについては、前の章で詳しく説明しました。
process
process.argv
: これはコマンドライン引数を含む配列です。最初の要素は Node.js の実行パス、2 番目の要素は現在実行中の JavaScript ファイルのパス、次の要素はスクリプトに渡されるコマンド ライン パラメータです。process.env
: これは、現在の環境変数を含むオブジェクトです。によって環境変数にアクセスして操作できますprocess.env
。process.cwd()
: このメソッドは、現在の作業ディレクトリのパスを返します。process.on(event, listener)
: イベントリスナーを登録するために使用されます。を使用して、process.on
などのイベントをリッスンし、イベントの発生時に対応するコールバック関数を実行できます。exit
uncaughtException
process.exit([code])
: 現在の Node.js プロセスを終了するために使用されます。オプションの終了コードを引数として指定できます。process.pid
: このプロパティは、現在のプロセスの PID (プロセス ID) を返します。
これらはprocess
オブジェクトの一般的に使用されるプロパティとメソッドの一部にすぎません。プロセスの監視、シグナル処理の設定、IPC メッセージの送信などに使用できるプロパティやメソッドは他にもたくさんあります。
需要注意的是,process
对象是一个全局对象,可以在任何模块中直接访问,无需导入或定义。
Buffer
-
创建
Buffer
实例:Buffer.alloc(size[, fill[, encoding]])
: 创建一个指定大小的新的Buffer
实例,初始内容为零。fill
参数可用于填充缓冲区,encoding
参数指定填充的字符编码。Buffer.from(array)
: 创建一个包含给定数组的Buffer
实例。Buffer.from(string[, encoding])
: 创建一个包含给定字符串的Buffer
实例。
-
读取和写入数据:
buffer[index]
: 通过索引读取或写入Buffer
实例中的特定字节。buffer.length
: 获取Buffer
实例的字节长度。buffer.toString([encoding[, start[, end]]])
: 将Buffer
实例转换为字符串。
-
转换数据:
buffer.toJSON()
: 将Buffer
实例转换为JSON对象。buffer.slice([start[, end]])
: 返回一个新的Buffer
实例,其中包含原始Buffer
实例的部分内容。
-
其他方法:
Buffer.isBuffer(obj)
: 检查一个对象是否是Buffer
实例。Buffer.concat(list[, totalLength])
: 将一组Buffer
实例或字节数组连接起来形成一个新的Buffer
实例。
请注意,从Node.js 6.0版本开始,Buffer
构造函数的使用已被弃用,推荐使用Buffer.alloc()
、Buffer.from()
等方法来创建Buffer
实例。
Buffer
类在处理文件、网络通信、加密和解密等操作中非常有用,尤其是在需要处理二进制数据时