Node.js 全局对象
Node.js全局对象本质上是全局的,并且在所有模块中都可用。 您无需在应用程序中包含这些对象,而是可以直接使用。
这些对象是模块,函数,字符串和对象等。其中一些对象实际上不在全局范围内,而是在模块范围内。
下面列出了Node.js全局对象的列表:
- __dirname 当前目录
- __filename 当前文件名
- Console 控制台
- Process 进程
- Buffer 缓存
- setImmediate(callback[, arg][, ...])
- setInterval(callback, delay[, arg][, ...])
- setTimeout(callback, delay[, arg][, ...])
- clearImmediate(immediateObject)
- clearInterval(intervalObject)
- clearTimeout(timeoutObject)
Node.js提供Buffer类来存储类似于整数数组的原始数据,但对应于V8堆外部的原始内存分配。 之所以使用Buffer类,是因为纯JavaScript不适用于二进制数据。 因此,在处理TCP流或文件系统时,必须处理八位位组流。
Buffer类是全局类。 可以在应用程序中访问它,而无需导入缓冲模块。
有很多方法可以构造Node Buffer, 以下是三种最常用的方法:
1)创建未初始化的缓冲区:以下是创建10个八位字节的未初始化缓冲区的语法:
var buf = new Buffer(10);
2)从数组创建缓冲区:以下是从给定数组创建缓冲区的语法:
var buf = new Buffer([10,20,30,40,50]);
3)从字符串创建缓冲区:以下是从给定字符串和可选编码类型创建缓冲区的语法:
var buf = new Buffer(“Simplely Easy Learning”,”utf-8”);
写缓冲
buf.write(string[, offset][, length][, encoding])
参数说明:
string:指定要写入缓冲区的字符串数据。
offset:它指定要开始写入的缓冲区的索引。 其默认值为0。
length:指定要写入的字节数。 默认为buffer.length
encoding:使用编码。 'utf8'是默认编码。
从写缓冲区返回值:
此方法用于返回写入的八位位组数,如果缓冲区不足以容纳整个字符串,则它将写入一部分字符串。
buf = new Buffer(256); len = buf.write("Simply Easy Learning"); console.log("Octets written : "+ len);
读缓冲
句法:
buf.toString([encoding] [,start] [,end])
参数说明:
encoding:指定要使用的编码。 'utf8'是默认编码
start:指定开始读取的起始索引,默认为0。
end:指定要结束读取的结束索引,默认为完整缓冲区。
返回从缓冲区读取的值:
此方法从使用指定字符集编码编码的缓冲区数据中解码并返回字符串。
buf = new Buffer(26); for (var i = 0 ; i < 26 ; i++) { buf[i] = i + 97; } console.log( buf.toString('ascii')); // outputs: abcdefghijklmnopqrstuvwxyz console.log( buf.toString('ascii',0,5)); // outputs: abcde console.log( buf.toString('utf8',0,5)); // outputs: abcde console.log( buf.toString(undefined,0,5)); // encoding defaults to 'utf8', outputs abcde
综合
1 console.log(__dirname); 2 console.log(__filename); 3 console.error("Error"); 4 console.warn("Warn") ; 5 6 buf = new Buffer(256); 7 len = buf.write("Simply Easy Learning"); 8 console.log("Octets written : "+ len); 9 10 buf = new Buffer(26); 11 for (var i = 0 ; i < 26 ; i++) { 12 buf[i] = i + 97; 13 } 14 console.log( buf.toString('ascii')); // outputs: abcdefghijklmnopqrstuvwxyz 15 console.log( buf.toString('ascii',0,5)); // outputs: abcde 16 console.log( buf.toString('utf8',0,5)); // outputs: abcde 17 console.log( buf.toString(undefined,0,5)); // encoding defaults to 'utf8', outputs abcde