Node基本模块

基本模块
因为Node.js是运行在服务器端的JavaScript环境,服务器环境和浏览器程序相比,最大的特点就是没有浏览器的安全限制了,而且,服务器程序必须能接收网络请求,读写文件,处理二进制内容,所以
Node.js内置的常用模块就是为了实现基本的服务器功能,这些模块在浏览器环境中是无法被执行的,因为她们的底层代码是用C/C++在Node.js运行环境中实现的.
Global
在前面的JavaScript课程中,我们已经知道,JavaScript有且仅有一个全局对象,在浏览器中,叫window对象,而在Node.js环境中,也有唯一的全局对象,但不叫window,而叫global
这个对象的属性和方法也和浏览器环境的window不同,进入Node.js交互环境,可以直接输入:
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():

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提供的全局变量名称来判断

//判断JavaScript执行环境
if (typeof(window) === 'undefined') {
    console.log('node.js');
} else {
    console.log('browser');
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Node.js是目前非常火热的技术,但是它的诞生经历却很奇特。 众所周知,在Netscape设计出JavaScri...
    w_zhuan阅读 3,638评论 2 41
  • 2 基本模块 在node中有且仅有一个全局变量和浏览器的全局变量的区别的是浏览器的全局变量是==window==而...
    _panda阅读 446评论 0 1
  • Node.js是目前非常火热的技术,但是它的诞生经历却很奇特。 众所周知,在Netscape设计出JavaScri...
    Myselfyan阅读 4,088评论 2 58
  • 对于nextTick()的当前理解就是,当前要行的操作结束之后执行该函数 node 的全局对象: global对象...
    vera1996阅读 236评论 0 0
  • 最近有点断篇了,昨天也没有写文章,昨天和前天也没有锻炼,好有罪恶感。 每天写文章这件事不能丢,每天12项锻炼的事貌...
    吴佟阅读 160评论 0 0