关键词:
因为Node.js是运行在服务区端的JavaScript环境,服务器程序和浏览器程序相比,最大的特点是没有浏览器的安全限制了,而且,服务器程序必须能接收网络请求,读写文件,处理二进制内容,所以,Node.js内置的常用模块就是为了实现基本的服务器功能。这些模块在浏览器环境中是无法被执行的,因为它们的底层代码是用C/C++在Node.js运行环境中实现的。
global
在前面的JavaScript课程中,我们已经知道,JavaScript有且仅有一个全局对象,在浏览器中,叫window
对象。而在Node.js环境中,也有唯一的全局对象,但不叫window
,而叫global
,这个对象的属性和方法也和浏览器环境的window
不同。进入Node.js交互环境,可以直接输入:
> global.console
Console
log: [Function: bound ],
info: [Function: bound ],
warn: [Function: bound ],
error: [Function: bound ],
dir: [Function: bound ],
time: [Function: bound ],
timeEnd: [Function: bound ],
trace: [Function: bound trace],
assert: [Function: bound ],
Console: [Function: Console]
process
process
也是Node.js提供的一个对象,它代表当前Node.js进程。通过process
对象可以拿到许多有用信息:
> process === global.process; true > process.version; ‘v5.2.0‘ > process.platform; ‘darwin‘ > process.arch; ‘x64‘ > process.cwd(); //返回当前工作目录 ‘/Users/michael‘ > process.chdir(‘/private/tmp‘); // 切换当前工作目录 undefined > process.cwd(); ‘/private/tmp‘
JavaScript程序是由事件驱动执行的单线程模型,Node.js也不例外。Node.js不断执行响应事件的JavaScript函数,直到没有任何响应事件的函数可以执行时,Node.js就退出了。
如果我们想要在下一次事件响应中执行代码,可以调用process.nextTick()
:
// test.js // process.nextTick()将在下一轮事件循环中调用: process.nextTick(function () console.log(‘nextTick callback!‘); ); console.log(‘nextTick was set!‘);
用Node执行上面的代码node test.js
,你会看到,打印输出是:
nextTick was set!
nextTick callback!
这说明传入process.nextTick()
的函数不是立刻执行,而是要等到下一次事件循环。
Node.js进程本身的事件就由process
对象来处理。如果我们响应exit
事件,就可以在程序即将退出时执行某个回调函数:
// 程序即将退出时的回调函数: process.on(‘exit‘, function (code) console.log(‘about to exit with code: ‘ + code); );
判断JavaScript执行环境
有很多JavaScript代码既能在浏览器中执行,也能在Node环境执行,但有些时候,程序本身需要判断自己到底是在什么环境下执行的,常用的方式就是根据浏览器和Node环境提供的全局变量名称来判断:
if (typeof(window) === ‘undefined‘) console.log(‘node.js‘); else console.log(‘browser‘);
node.js的全局对象和全局变量
...示Node所在的全局环境,类似于浏览器中的window对象。2)process:指向Node内置的process模块,允许开发者与当前进程互动。例如你在DOS或终端窗口直接输入node,就会进入NODE的命令行方式(REPL环境)。退出要退出的话,可以输入proc... 查看详情
node中的全局对象
...在任何地方可以直接使用,不需要导包setTimeout/setImmediate/process.nextTick,异步的时候setTimeout的优先级高于setImmediate,process.nextTick优先级最高setInterval在REPL环境中定义的变量直接挂载到global中在js文件中定义的变量不会挂载到glob 查看详情
node基本模块
...同。 进入Node.js交互环境,可以直接输入: process也是Node.js提供的一个对象,它代表当前Node.js进程。 通过process对象可以拿到许多有用信息: 查看详情
每日灵魂一问-node.js的全局对象有哪些?
...,通常window是全局对象,而Node.js中的全局对象是global)2.process表示node.js的进程状态3.console用于控制台的输出4.Class:Buffer可以处理二进制以及非Unicode编码的数据5.全局的函数:setTimeoutsetIntervalclearTimeoutcleatSetIn 查看详情
node.js全局对象
...量。在浏览器JavaScript中,通常window是全局对象,而Node.js中的全局对象是global,所有全局变量(除了global本身以外)都是global对象的属性。 在Node.js我们可以直接访问到global的属性,而不 查看详情
node.js全局对象
...量。在浏览器JavaScript中,通常window是全局对象,而Node.js中的全局对象是global,所有全局变量(除了global本身以外)都是global对象的属性。 在Node.js我们可以直接访问到global的属性,而不需要在应用中包含它。全 查看详情
node入门教程第四章:global全局变量(代码片段)
...,还有它继承来的属性。注意浏览器下的全局对象跟nodejs中的全局对象不一致浏览器环境下的全局对象就是windowNode的全局对象是 globalJS语言标准的全局的内置对象JS语言 查看详情
vue-process.env定义
1.官方解释:process对象是一个global(全局变量),提供有关信息,控制当前Node.js进程。作为一个对象,它对于Node.js应用程序始终是可用的,故无需使用require()。 2.process(进程)其实就是存在nodejs中的一个全局变量。然... 查看详情
node对象
global,node的全局对象;js在游览器中的全局对象为windows在node环境中;输入global.consloe输出:Console{log:[Function:bound],info:[Function:bound],warn:[Function:bound],error:[Function:bound],dir:[Function:bound],time:[Function:bou 查看详情
js中的global对象
...管你从什么角度上看,这个对象都是不存在的。ECMAScript中的Global对象在某种意义上是作为一个终极的“兜底儿对象”来定义的。换句话说,不属于任何其他对象的属性和方法,最终都是它的属性和方法。事实上,没有全局变量... 查看详情
node全局对象global——记录在线人员
...总是查询在线状态很麻烦,所以就想着用户node全局对象global对象存储在线人员。 global对象感觉和jsp的application差不多,它的生命周期为从系统启动到系统关闭,当系统关闭的时候就肯定不存在在线用户了,所以用global存储的... 查看详情
nodejs实现客户端登陆
nodejs的api中有一个process进程对象,process 对象是一个 global (全局变量),提供有关信息,控制当前Node.js进程。作为一个对象,它对于Node.js应用程序始终是可用的,故无需使用 require()。process进程中提供了stdin和st... 查看详情
es6记录之二——global对象(代码片段)
...也指向顶层对象,但是Node没有self。Node里面,顶层对象是global,但其他环境都不支持。同一段代码为了能够在各种环境,都能取到顶层对象,现在一般是使用this变量,但是有局限性。全局环境中,thi 查看详情
node常用的对象
全局对象process全局对象process.nextTick()process.argv获取命令行输入的参数__filename当前运行文件的绝对路径E:Node.jsode对象全局对象 查看详情
process对象
一、目录 process对象是Node的一个全局对象,提供当前Node进程的信息。它可以在脚本的任意位置使用,不必通过require命令加载。该对象部署了EventEmitter接口。 二、属性 process对象提供一系列属性,用于返回系... 查看详情
node.js之global全局对象(代码片段)
Globalglobal和window很像,都是全局对象CONSOLE断言是用来测试用的断言就是假定一个条件,如果条件成立则不输出任何内容,如果条件不成立则报错还要输出想要输出的内容。console.assert(条件,条件不成立输出的内容);varfo... 查看详情
nj08---processconsole
...global,所有全局变量都是global对象的属性,如:console、process等。一、全局对象与全局变量global最根本的作用是作为全局变量的宿主。满足以下条件成为全局变量:1.在最外层定义的变量2.全局对象的属性3.隐式定义的变量(未定义... 查看详情
nodejs-process对象
JavaScript标准参考教程(alpha)草稿二:Node.jsprocess对象GitHub TOP process对象来自《JavaScript标准参考教程(alpha)》,by阮一峰目录process对象是Node的一个全局对象,提供当前Node进程的信息。它可以在脚本的任意位置使用,不... 查看详情