`

(五)、node.js 核心模块

 
阅读更多

1、全局对象

node.js中的全局对象是global,我们在node.js中能够直接访问的对象通常是global的属性,如console、process等。

1.1、全局对象与全局变量

global是全局变量的宿主,当你定义一个全局变量的时候,这个变量同时会成为全局对象的属性。在node.js中你不可能定义全局变量,因为虽有用户的代码都是属于当前模块的,而模块本事不是最外层上下文。

1.2、process

process是全局变量,也就是global对象的属性。它用于描述当前node.js进程的状态的对象。下面说下process.nextTick(callback)

function doSomething(args, callback) { 
    somethingComplicated(args); callback();
}
doSomething(function onEnd() { 
    compute();
});

 我们假设somethingComplicated和compute()是两个很耗时的操作,由于node.js进程是单线程的,所以程序可能会出现卡顿现象。现在我们采用process.nextTick(callback),代码如下:

 

function doSomething(args, callback) {
   somethingComplicated(args); 
   process.nextTick(callback);
}
doSomething(function onEnd() {
   compute();
});
 当调用doSomething的时候,执行完成somethingComplicated后,在下个事件循环中进行回调函数的调用,因此process.nextTick(callback)会把耗时的操作拆分成了两个耗时较少的事件。

1.3、console

用于控制台标准输出。

1.4、util

util是一个node.js的核心模块,提供常用函数的结合,用于弥补核心js的功能过于精简的不足。我们只介绍util.inherits。

util.inherits是实现对象间原型继承的函数。下面看一个例子、

 

var util = require('util');
function Base() { 
   this.name = 'base';
   this.base = 1991;
   this.sayHello = function() { 
      console.log('Hello ' + this.name);
   }; 
}
Base.prototype.showName = function() {
    console.log(this.name);
};


 下面我们编写一个Base的子类

 

function Sub() {
    this.name = 'sub';
}
util.inherits(Sub, Base);
 进行测试
var objBase = new Base();
objBase.showName(); 
objBase.sayHello();
console.log(objBase);
var objSub = new Sub();
objSub.showName(); 
//objSub.sayHello();
console.log(objSub);
 测试结果为Sub类只是继承Base类在原型中定义的函数showName,而在Base类的构造函数中定义的函数和属性都没有被继承。

1.5、util.inspect

它是将任意一个对象转换为字符串的方法。

var util = require('util');
function Person() {
    this.name = 'byvoid';
    this.toString = function() {
    return this.name;
    }; 
}
var obj = new Person(); console.log(util.inspect(obj));
console.log(util.inspect(obj, true));

 运行结果为

{ name: 'byvoid', toString: [Function] }
{ toString:
{ [Function]
[prototype]: { [constructor]: [Circular] }, [caller]: null,
[length]: 0,
[name]: '',
[arguments]: null },
 name: 'byvoid' }

 

分享到:
评论

相关推荐

    Node.js:Node.js核心模块详解.docx

    Node.js:Node.js核心模块详解.docx

    Node.js-深入理解Node.js核心思想与源码分析

    《Node.js-深入理解Node.js核心思想与源码分析》 Node.js,作为一个基于Chrome V8引擎的JavaScript运行环境,自其诞生以来,就以其高效、异步非阻塞I/O以及事件驱动的特性,迅速在Web开发领域崭露头角。本资料将带...

    Node.js硬实战 115个核心技巧.pdf

    《Node.js硬实战 115个核心技巧》是一本深度挖掘Node.js技术的书籍,旨在帮助开发者掌握Node.js的核心技能并提升实际开发能力。Node.js是基于Chrome V8引擎的JavaScript运行环境,它以其非阻塞I/O、事件驱动的特性在...

    node.js(v16.16.0) 安装包

    Node.js 的核心特性之一是其非阻塞 I/O 模型,这使得 Node.js 在处理大量并发连接时表现出色。v16.16.0 版本继续优化了这一特性,提升了在高并发场景下的性能。此外,Node.js 内置了事件驱动架构,通过事件循环机制...

    Node.js入门教程.pdf

    Readline 是 Node.js 的一个核心模块,用于提供命令行读取功能。Readline 提供了异步 I/O 模式,允许开发者处理高并发请求。 在本 Lesson 中,我们将学习如何使用 Readline 处理命令行输入,如何使用 Readline 提供...

    Node.js By Example

    Node.js的核心特性包括单线程事件循环、异步编程、模块系统以及强大的文件系统操作等。在本书中,你将学习如何利用这些特性来开发高效的应用程序。 1. **事件驱动编程**:Node.js采用事件驱动模型,当有I/O操作时,...

    Node.js-一个用于自动获取支付宝账单信息的Node.js模块

    在描述中,“一个用于自动获取支付宝账单信息的 Node.js 模块”,进一步强调了这个模块的核心功能。这通常意味着它通过与支付宝的API进行交互,获取用户授权后的交易记录。支付宝是一个由阿里巴巴集团提供的在线支付...

    node.js最新手册

    Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用JavaScript进行编程。这个"Node.js最新手册"很可能包含了关于Node.js的最新API、模块系统、事件驱动模型以及异步I/O等内容。 在...

    Node.js-Node.jsforMobileApps是用于Android和iOS的完整版Node.js运行时

    描述中提到,这个“完整版Node.js运行时”意味着它包含了所有必要的组件,能够在移动设备上执行Node.js代码,这通常包括V8引擎、Node.js核心库、以及各种内置模块。在Android和iOS上运行Node.js,开发者可以利用...

    node.js 安装包 10.16.3-x64

    Node.js 是一个开源、跨平台的JavaScript运行环境,它允许开发者在服务器端执行JavaScript代码,极大地拓宽了JavaScript的应用领域。10.16.3-x64 版本是 Node.js 的一个稳定版本,适用于64位操作系统。下面将详细...

    Node.js-systeminformation-用于获取各种系统信息的Node.JS模块

    Node.js 是一个流行的开源JavaScript运行环境,它允许开发者在服务器端使用JavaScript进行编程。`systeminformation` 是一个针对Node.js的高效模块,专门用于获取多种系统级别的信息,如硬件、系统和操作系统详情。...

    Welcome to Node.js v14.17.6..zip

    Node.js 是一个开源、跨平台的JavaScript运行环境,它允许开发者在服务器端执行JavaScript代码,极大地拓宽了JavaScript的应用领域。标题“Welcome to Node.js v14.17.6”表明我们将探讨的是Node.js的特定版本——v...

    node.js实战 pdf+源码

    本书的核心内容围绕JavaScript的非阻塞I/O模型,利用Node.js的异步事件驱动架构,来实现高性能的网络应用。以下是基于标题、描述和标签所涵盖的多个关键知识点的详细解释: 1. **Node.js基础**:Node.js是一个基于...

    Node.js安装包压缩包

    Node.js是一种开源、跨平台的JavaScript运行环境,它允许开发者在服务器端运行JavaScript代码,极大地扩展了JavaScript的应用范围。Node.js基于Chrome V8引擎,因此它具有高性能和高效率的特点。这个压缩包文件包含...

    node.js实战(第2版)PDF&源码.zip

    《Node.js实战(第2版)》是一本深入探讨Node.js技术的实战指南,适合有一定JavaScript基础并希望进一步掌握Node.js开发的读者。本书详细介绍了如何利用Node.js的强大功能进行后端开发,以及如何与其他技术栈配合,...

    Node.js 6.x Blueprints(pdf+epub+mobi+code)

    1. **基础篇**:首先会介绍Node.js的基础知识,包括安装、环境配置、模块系统以及Node.js核心API的使用,如文件系统操作、网络通信、进程管理等。 2. **Web开发**:讲解如何使用Express.js,一个简洁灵活的Node.js ...

Global site tag (gtag.js) - Google Analytics