Node module模块使用详解

这次给大家带来Node module模块使用详解,Node module模块使用的注意事项有哪些,下面就是实战案例,一起来看一下。

在开发复杂Web应用的时候,通常需要把各个功能进行拆分、封装到不同的文件并在需要的时候引用该文件,即进行代码的模块化管理。几乎所有的编程语言都有自己的模块组织方式,比如Java中的包、C#中的程序集,而Node采用CommonJS模块规范。

模块规范

CommonJS旨在将运行在浏览器之外的JS进行标准化,并已经解决了大量的JS问题(如全局命名冲突)。Node对CommonJS的实现中,每个模块都会被封装在一个单独的JS文件中,即一个文件就是一个模块,而文件路径就是模块名。在编写每个模块时,都有以下三个预定义好的变量可供使用:

require()

该函数用于在当前模块中加载和使用别的模块,传入一个模块名,返回一个模块导出对象。模块名可以使用相对路径(以./开头),也可以使用绝对路径(以/或C: 之类的盘符开头)。另外,模块名中的.js 扩展名是可以省略的,此时Node会寻找同名的文件夹,如果找不到,则寻找同名的js文件。还可以使用该函数加载和使用一个JSON文件,但此时.json 扩展名不可省略。

exports

该对象是当前模块的导出对象,用于导出模块公有方法和属性,默认为一个空对象{}。别的模块通过require()函数使用当前模块时得到的就是当前模块的exports对象。以下代码中导出了一个公有方法:

exports.hello = function() {  console.log("Hello World!");};

登录后复制

module

该对象用于提供当前模块的元数据等相关信息,但用途最多的是使用其exports属性替换当前模块的导出对象。例如模块导出对象默认是一个普通对象,可以使用以下方式使其变成一个函数:

module.exports = function() {  console.log("Hello World!");};

登录后复制

注意:当使用以上方式时,对exports对象的所有修改都将被忽略!

模块初始化

一个模块中的JS代码仅在模块第一次被使用时执行一次,并在执行过程中初始化模块的导出对象。之后,缓存起来的导出对象被重复利用。

在test.js定义一个模块

//定义私有变量var name = "";function setName(n) {  name = n;}function logName() {  console.log(name);}//导出公有方法exports.setName = setName;exports.logName = logName;

登录后复制

在main中加载test模块

//加载test模块var test1 = require("./test.js"),  test2 = require("./test.js");//使用test1test1.setName("Neo");//使用test2test2.logName(); //Neo

登录后复制

可见,无论调用多少次require() ,对于同一个模块只加载一次,引用多次获取的其实是相同的实例。

主模块

通过命令行参数传递给Node以启动程序的模块称为主模块,主模块负责调度组成整个应用程序的其他模块协同工作。例如通过以下命令行启动程序时,main.js 就是主模块:

$ node main.js

登录后复制

二进制模块

Node除了可以使用JS编写模块,也支持使用C/C++编写二进制模块,编译好的二进制模块除了文件扩展名是.node外,和JS模块的使用方式相同。虽然二进制模块能使用操作系统提供的所有功能,但难以跨平台使用。

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

js对数值数组进行去重与优化

Vue全局引入bass.scss步骤详解

以上就是Node module模块使用详解的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2763642.html

(0)
上一篇 2025年3月8日 10:12:43
下一篇 2025年2月27日 06:23:18

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Vue构建分页组件步骤详解

    这次给大家带来Vue构建分页组件步骤详解,Vue构建分页组件的注意事项有哪些,下面就是实战案例,一起来看一下。 Web应用程序中资源分页不仅对性能很有帮助,而且从用户体验的角度来说也是非常有用的。在这篇文章中,将了解如何使用Vue创建动态和…

    2025年3月8日 编程技术
    200
  • jQuery+Cookie切换皮肤步骤详解

    这次给大家带来jQuery+Cookie切换皮肤步骤详解,jQuery+Cookie切换皮肤的注意事项有哪些,下面就是实战案例,一起来看一下。 最近在学习Jquery,发现Jquery真的是非常强大,短短几行代码就能实现切换皮肤的功能。 1…

    编程技术 2025年3月8日
    200
  • Angular组件交互使用详解

    这次给大家带来Angular组件交互使用详解,Angular组件交互的注意事项有哪些,下面就是实战案例,一起来看一下。 根据数据的传递方向,分为父组件向子组件传递、子组件向父组件传递及通过服务传递三种交互方法。 父组件向子组件传递 子组件通…

    编程技术 2025年3月8日
    200
  • computed与methods使用详解

    这次给大家带来computed与methods使用详解,computed与methods使用的注意事项有哪些,下面就是实战案例,一起来看一下。 computed and methods 拼接展示数据的任务, 也可以用methods完成, 但…

    2025年3月8日
    200
  • Vue过滤器格式化方法详解

    这次给大家带来Vue过滤器格式化方法详解,Vue过滤器格式化的注意事项有哪些,下面就是实战案例,一起来看一下。 前端处理一些金额,数字类的数据要求按照固定的格式显示,比如9,527,025,或者带有小数(如1,587.23)仍要三位一断。有…

    2025年3月8日
    200
  • JS常见函数使用详解

    这次给大家带来JS常见函数使用详解,JS常见函数使用的注意事项有哪些,下面就是实战案例,一起来看一下。 数组扁平化 数组扁平化有很多方法,但最终最好的方法就是递归,实现一个指定深度的扁平化方法,这样基本的套路都会了解。 function f…

    编程技术 2025年3月8日
    200
  • 前端中关于url、href、src知识详解

    这次给大家带来前端中关于url、href、src知识详解,前端中关于url、href、src的注意事项有哪些,下面就是实战案例,一起来看一下。 一、URL的概念 统一资源定位符(或称统一资源定位器/定位地址、URL地址等,英语:Unifor…

    2025年3月8日 编程技术
    200
  • vue中keep-alive缓存功能使用详解

    这次给大家带来vue中keep-alive缓存功能使用详解,vue中keep-alive缓存功能使用的注意事项有哪些,下面就是实战案例,一起来看一下。 当我们在开发vue的项目过程中,避免不了在路由切换到其他的component再返回后该组…

    编程技术 2025年3月8日
    200
  • vuex使用步骤详解

    这次给大家带来vuex使用步骤详解,vuex使用的注意事项有哪些,下面就是实战案例,一起来看一下。 vuex是一个专门为vue.js设计的集中式状态管理架构。状态?我把它理解为在data中的属性需要共享给其他vue组件使用的部分,就叫做状态…

    编程技术 2025年3月8日
    200
  • JS中事件委托使用详解

    这次给大家带来JS中事件委托使用详解,JS中事件委托使用的注意事项有哪些,下面就是实战案例,一起来看一下。 事件委托(也叫事件代理),其实这个问题也简单,要想弄明白事件委托,我们先要把事件冒泡的机制搞清楚。举个事件冒泡的例子: 点击 var…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论