Node.js中的模块系统介绍

 更新时间:2022年04月29日 10:09:37   作者:農碼一生  
这篇文章介绍了Node.js中的模块系统,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统。

模块是Node.js 应用程序的基本组成部分,文件和模块是一一对应的。换言之,一个 Node.js 文件就是一个模块,这个文件可能是JavaScript 代码、JSON 或者编译过的C/C++ 扩展。

一、exports引入模块

模块的创建

首先,我们在项目中创建hello.js,代码如下:

exports.world = function() {
  console.log('Hello World');
}
exports.hi = function() {
  console.log('hi,nodejs');
}

hello.js通过exports将world和hi作为模块的访问接口,可以提供给外部加载调用。

模块的引入

在 Node.js 中,引入一个模块非常简单,如下我们创建一个 main.js 文件并引入 hello 模块,代码如下:

var hello = require('./hello');
hello.world();
hello.hi();

以上实例中,代码 require('./hello') 引入了当前目录下的 hello.js 文件(./ 为当前目录,node.js 默认后缀为js)。

Node.js 提供了 exports 和 require 两个对象,其中 exports 是模块公开的接口,require 用于从外部获取一个模块的接口,即所获取模块的 exports 对象。

二、module.exports引入模块

模块的创建

如果将整个对象作为访问接口,我们在项目中创建hello.js,代码如下:

module.exports = function Hello() {
    var name; 
    this.setName = function(theName) { 
    	name = theName; 
    }; 
    this.sayHello = function() { 
    	console.log('Hello ' + name); 
    }; 
}

function Hello() {
	var name; 
    this.setName = function(theName) { 
        name = theName; 
    }; 
    this.sayHello = function() { 
        console.log('Hello ' + name); 
    }; 
}
module.exports = Hello;

hello.js通过module.exports将Hello对象作为模块的访问接口,可以提供给外部加载调用。

模块的引入

在 Node.js 中,引入一个模块非常简单,如下我们创建一个 main.js 文件并引入 hello 模块,代码如下:

var Hello = require('./hello'); 
hello = new Hello(); 
hello.setName('刘德华'); 
hello.sayHello();

exports返回模块函数,而module.exports返回模块本身。

exports 和 module.exports 的使用

(1)如果要对外暴露属性或方法,就用 exports 就行,要暴露对象(类似class,包含了很多属性和方法),就用module.exports。

(2)不建议同时使用 exports 和 module.exports,如果先使用 exports 对外暴露属性或方法,再使用module.exports 暴露对象,会使得 exports 上暴露的属性或者方法失效。

到此这篇关于Node.js模块系统的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • NodeJs搭建本地服务器之使用手机访问的实例讲解

    NodeJs搭建本地服务器之使用手机访问的实例讲解

    今天小编就为大家分享一篇NodeJs搭建本地服务器之使用手机访问的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • Nodejs实现获取实时数据的三种主流方式详解

    Nodejs实现获取实时数据的三种主流方式详解

    这篇文章主要为大家详细介绍了Nodejs前端获取实时数据的三种主流方式,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-02-02
  • node koa2实现上传图片并且同步上传到七牛云存储

    node koa2实现上传图片并且同步上传到七牛云存储

    这篇文章主要介绍了node koa2实现上传图片并且同步上传到七牛云存储,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • Node.js如何对SQLite的async/await封装详解

    Node.js如何对SQLite的async/await封装详解

    这篇文章主要给大家介绍了关于Node.js如何对SQLite的async/await进行封装的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-02-02
  • Node.js中使用mongoose操作mongodb数据库的方法

    Node.js中使用mongoose操作mongodb数据库的方法

    如何利用mongoose将数据写入mongodb数据库呢?操作方法很简单,下面小编给大家分享Node.js中使用mongoose操作mongodb数据库的方法,感兴趣的朋友一起看看吧
    2017-09-09
  • 详解使用nvm管理多版本node的方法

    详解使用nvm管理多版本node的方法

    本篇文章主要介绍了详解使用 nvm 管理多版本 node的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • node+express+jade制作简单网站指南

    node+express+jade制作简单网站指南

    上文我们介绍了使用node+express+ejs制作页面,今天我们来看看使用node+express+jade制作简单网站,本文记录了一下整个搭建过程,给需要的小伙伴们参考下吧
    2014-11-11
  • 详解nodejs实现本地上传图片并预览功能(express4.0+)

    详解nodejs实现本地上传图片并预览功能(express4.0+)

    本篇文章主要介绍了nodejs实现本地上传图片并预览功能(express4.0+) ,具有一定的参考价值,有兴趣的可以了解一下
    2017-06-06
  • 在nodejs中创建child process的方法

    在nodejs中创建child process的方法

    这篇文章主要介绍了在nodejs中创建child process的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • Node.JS事件的绑定与触发示例详解

    Node.JS事件的绑定与触发示例详解

    Node中的事件模型就是我们常见的订阅发布模式,Nodejs核心API都采用异步事件驱动,所有可能触发事件的对象都是一个继承自EventEmitter类的子类实例对象,这篇文章主要给大家介绍了关于Node.JS事件的绑定与触发事件的相关资料,需要的朋友可以参考下
    2022-11-11

最新评论