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模块系统的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • VSCode launch.json配置详细教程

    VSCode launch.json配置详细教程

    这篇文章主要介绍了vscode 的node.js debugger 的 launch.json 配置详情,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • 详解node nvm进行node多版本管理

    详解node nvm进行node多版本管理

    这篇文章主要介绍了详解node nvm进行node多版本管理,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • 推荐 21 款优秀的高性能 Node.js 开发框架

    推荐 21 款优秀的高性能 Node.js 开发框架

    Node.js是JavaScript中最为流行的框架之一,易于创建可扩展的Web应用。Node.js包含不同类型框架,包括MVC, full-stack,REST API以及Generators。借助这些框架使Node.js更加易于使用,它还支持众多特性功能,只需几个步骤就可快速搭建强大的Web应用。本文为大家推荐21款
    2014-08-08
  • Nodejs读取本地json文件,输出json数据接口方式

    Nodejs读取本地json文件,输出json数据接口方式

    这篇文章主要介绍了Nodejs读取本地json文件,输出json数据接口方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • Node.js事件驱动

    Node.js事件驱动

    Node.Js是基于javascript语言,建构在google V8 engine以及Linux上的一个非阻塞事件驱动IO框架。这里主要不是介绍nodejs具体应用代码,而是想介绍一下事件驱动编程。
    2015-06-06
  • Nest.js环境变量配置与序列化详解

    Nest.js环境变量配置与序列化详解

    这篇文章主要给大家介绍了关于Nest.js环境变量配置与序列化的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • NodeJS使用递归算法和遍历算法来遍历目录的方法

    NodeJS使用递归算法和遍历算法来遍历目录的方法

    遍历目录是操作文件时的一个常见需求,比如写一个程序,需要找到并处理指定目录下的所有JS文件时,就需要遍历整个目录,NodeJS遍历目录可以使用递归算法、遍历算法,遍历算法又分为同步遍历、异步遍历两种,本文介绍NodeJS使用递归算法和遍历算法来遍历目录的方法
    2023-11-11
  • NODE.JS加密模块CRYPTO常用方法介绍

    NODE.JS加密模块CRYPTO常用方法介绍

    这篇文章主要介绍了NODE.JS加密模块CRYPTO常用方法介绍,需要的朋友可以参考下
    2014-06-06
  • Node.js接入DeepSeek实现流式对话功能

    Node.js接入DeepSeek实现流式对话功能

    随着人工智能技术的发展,越来越多的服务和应用开始集成AI能力以提升用户体验,本文将介绍如何通过Node.js接入DeepSeek提供的API服务,特别是其聊天完成(Chat Completions)功能,为您的应用增添智能对话能力,需要的朋友可以参考下
    2025-02-02
  • 学习Nodejs之fs模块的使用详解

    学习Nodejs之fs模块的使用详解

    这篇文章主要为大家详细介绍了Nodejs之fs模块的使用,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02

最新评论