`

(二)、node.js 模块

 
阅读更多

1、什么是模块

在node.js中模块和文件是一一对应的。一个node.js文件就是一个模块,这个文件可能是js代码,JSON或者编译过的c/c++扩展。

2、创建模块

//module.js
var name;
 exports.setName = function(thyName) {
     name = thyName;
};
exports.sayHello = function() { 
    console.log('Hello ' + name);
};

创建一个模块非常简单,因为一个模块就是一个文件。node.js提供了exports对象,它是模块的公开接口。

3、加载模块

在2的基础上,我们创建文件getmoudle.js,内容是

var myModule = require('./module');
myModule.setName('BYVoid');
myModule.sayHello();

  运行结果是:Hello SYVoid

module.js通过exports对象把setName和sayHello作为模块的访问接口,在getmodels.js通过require对象加载模块,然后就可以访问exports对象的成员函数了。

代码像是创建了一个对象,但是又由本质的区别。因为require不会重复加载模块,五六年调用多少次require,获得的模块都是同一个。我们在上面的代码上稍作修改,然后在执行一次。

//loadmodule.js
var hello1 = require('./module'); hello1.setName('BYVoid');
var hello2 = require('./module'); hello2.setName('BYVoid 2');
    hello1.sayHello();

 最后的输出结果为:

 Hello BYVoid 2

这是因为hello1和hello2指向的是同一个实利,因此hello.setName被hello.setName覆盖。

4、覆盖exports

//hello.js
function Hello() { 
  var name;
  this.setName = function(thyName) {
    name = thyName; 4
  };
  this.sayHello = function() {
      console.log('Hello ' + name);
  }; 
};
module.exports = Hello;

 module.exports = Hello,覆盖了exports对象,当外部引用hello.js的时候,输出的是Hello对象本身,而不再是exports对象。实际上,exports本身仅仅是一个普通的空对象,即{},它专门用来声明接口,本质上是通过它为模块壁报的内部建立的一个有限访问的接口。

分享到:
评论

相关推荐

    Node.js-收集最棒的node.js模块这些模块可扩展node.js应用程序的功能

    Node.js作为一个开源、跨平台的JavaScript运行环境,它在服务器端执行JavaScript代码,极大地拓宽了JavaScript的应用领域。本文将深入探讨一些优秀的Node.js模块,这些模块可以帮助开发者扩展其应用程序的功能,提升...

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

    标题中的“Node.js-一个用于自动获取支付宝账单信息的Node.js模块”表明我们要讨论的是一个基于Node.js的模块,其主要功能是自动化获取支付宝用户的账单数据。这个模块利用了Node.js的非阻塞I/O和事件驱动特性,使得...

    Node.js(node-v16.15.1-win-x86.zip)

    Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...

    Node.js开发-Node.js入门.pdf

    * 广泛的第三方模块生态系统: Node.js 有一个庞大的第三方模块生态系统,提供了大量的类库和框架来帮助开发者快速构建应用程序。 Node.js 的缺点包括: * 学习曲线陡峭: Node.js 的异步机制和事件驱动机制需要...

    node.js(v16.16.0) 安装包

    Node.js 是一个开源、跨平台的 JavaScript 运行环境,它让开发者可以在服务器端执行 JavaScript 代码。Node.js 使用了 Google V8 引擎,这个引擎是为 Chrome 浏览器设计的,因此 Node.js 具有高性能和高效性的特点。...

    Node.js入门教程.pdf

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,允许开发者使用 JavaScript 语言来编写服务器端代码。Node.js 的出现改变了传统的 Web 开发模式,使得开发者可以使用 JavaScript 语言来开发服务器端...

    Node.js By Example

    Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它以其非阻塞I/O和事件驱动的模型,为构建高性能的网络应用提供了可能。 Node.js的核心特性包括单线程事件循环、异步编程、模块系统以及强大的文件系统操作等...

    Node.js(node-v16.15.1.pkg)

    Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...

    node.js 安装包 10.16.3-x64

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

    node.js最新手册

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

    node.js实战 pdf+源码

    1. **Node.js基础**:Node.js是一个基于Chrome V8引擎的JavaScript运行环境,允许开发者在服务器端使用JavaScript编写程序。它将JavaScript的灵活性和强大性能带入了服务端开发,使得前后端开发语言统一成为可能。 ...

    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(node-v16.15.1.tar.gz 源码)

    Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...

    Node.js官方工具14.17.3版本windows系统x64安装包

    在14.x版本中,Node.js引入了对ES模块的实验性支持,这是一种更现代的JavaScript模块系统,与CommonJS系统并行存在。这使得开发者可以使用`import`和`export`关键字来管理模块,提高代码可读性和可维护性。 此外,...

    Node.js(node-v16.15.1-x64.msi)

    Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...

    Node.js in Action 第二版 第一章

    Node.js的编程基础通常包括对JavaScript语言的熟悉,以及对Node.js提供的核心模块和API的了解。Node.js标准库中包含了许多有用的模块,例如文件系统模块(fs)、HTTP模块、网络通信模块等,这些模块使得在Node.js...

    node.js时钟案例

    Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它允许我们在服务器端编写JavaScript代码,实现强大的网络应用功能。结合CSS和前端技术,我们可以创建出动态且交互式的时钟界面。 首先,我们需要了解Node.js...

    Node.js-Lyo提供将Node.js模块发布为与浏览器兼容的库的最简单方法

    Lyo 提供将Node.js模块发布为与浏览器兼容的库的最简单方法

    《Node入门一本全面地Node.js教程》PDF

    Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用JavaScript进行编程。这本《Node入门一本全面地Node.js教程》PDF,是学习Node.js的基础指南,涵盖了从安装到实际项目开发的全方位...

Global site tag (gtag.js) - Google Analytics