node中的global对象和process对象(代码片段)

fqh123 fqh123     2022-12-18     271

关键词:

因为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进程的信息。它可以在脚本的任意位置使用,不... 查看详情