Node.js的全局对象是具有全局性的,它们可在所有的模块中应用。我们并不需要包括这些对象在应用中,而可以直接使用它们。这些对象的模块,函数,字符串和对象本身,如下所述。
__filename
__filename 表示正在执行的代码的文件名。这是此代码文件的解析绝对路径。 为一个主程序这不一定是在命令行中使用相同的文件名。 模块内的路径模块文件的值。
示例
创建一个js文件名为main.js里面有如下代码:
// Let's try to print the value of __filename console.log( __filename );
现在运行main.js看到的结果:
$ node main.js
根据你的程序的位置,将打印主文件名,如下所示:
/web/com/15259554028_2109/main.js
__dirname
__dirname表示当前正在执行的脚本所在目录的名称。
示例
创建一个js文件名为main.js里面有如下代码:
// Let's try to print the value of __dirname console.log( __dirname );
现在运行main.js看到的结果:
$ node main.js
根据你的程序的位置,将打印当前目录名称如下:
/web/com/1427091028_21099
setTimeout(cb, ms)
setTimeout(cb, ms) 全局函数用于至少毫秒毫秒后运行回调cb。实际延迟取决于外部因素,如OS计时器粒度和系统负载。计时器不能跨越超过24.8天。
该函数返回一个表示可用于清除定时器,定时器的不透明值。
示例
创建一个js文件名为main.js里面有如下代码:
function printHello(){ console.log( "Hello, World!"); } // Now call above function after 2 seconds setTimeout(printHello, 2000);
现在运行main.js看到的结果:
$ node main.js
验证输出有一点点延迟后打印
Hello, World!
clearTimeout(t)
clearTimeout(t)的全局函数用来停止以前用的setTimeout()创建一个定时器。这里t是由setTimeout()函数返回的计时器。
示例
创建一个js文件名为main.js里面有如下代码:
function printHello(){ console.log( "Hello, World!"); } // Now call above function after 2 seconds var t = setTimeout(printHello, 2000); // Now clear the timer clearTimeout(t);
现在运行main.js看到的结果:
$ node main.js
验证,不会有任何打印输出。
setInterval(cb, ms)
setInterval(cb, ms) 全局函数是用来至少毫秒后重复运行回调cb。实际延迟取决于外部因素,如OS计时器粒度和系统负载。计时器不能跨越超过24.8天。
函数返回一个表示可用于清除定时器使用功能的计时器的不透明值 clearInterval(t).
示例
创建一个js文件名为main.js里面有如下代码:
function printHello(){ console.log( "Hello, World!"); } // Now call above function after 2 seconds setInterval(printHello, 2000);
现在运行main.js看到的结果:
$ node main.js
上述程序将每2秒之后执行函数printHello()。由于系统的限制,此方案不能执行选项,所以可以在本地检查你的机器。
全局对象
下表列出了一些我们经常使用在我们的应用中另一个对象的细节。对于进一步的细节,可以参考官方文档。
S.N. | 模块名称 & 描述 |
---|---|
1 |
Console 用于打印输出和错误信息 |
2 |
Process 用于获取当前进程的信息。提供处理活动有关的多个事件 |