- 0
- 0
- 约9.54千字
- 约 10页
- 2026-02-09 发布于北京
- 举报
NodeJS中模块的概念
简介
上,JavaScript一直没有模块(module)体系,无法将一个大程序拆分成互相依赖
的小文件,再用简单的方法拼装起来。其他语言都有这项功能,比如Ruby的
require、Python的import,甚至就连CSS都有@import,但是JavaScript任何这
方面的支持都没有,这对开发大型的、复杂的项目形成了巨大。
在ES6中其实已经实现了JS中模块的概念,使用起来也非常简单,今后我们有时间再来介绍
ES6中模块的使用方式,然而今天我们主要学下Nodejs中模块的相关概念以及使用
方式
其实在这一课之前我们已经频繁的使用了Nodejs中的模块,还记得我们每次在写代码前
使用require(xx)引入的包吗?require()这个函数就是在引入模块到我们的项目中
在Nodejs中,文件和模块是一一对应的(每个文件被视为一个独立的模块),这个文
件可能是JavaScript代码,JSON或编译过的C/C++扩展,例如:
导出
1/**
*新建一个文件foo.js
*将这个js文件导出为模块
*/
exports.hellofunction(){
console.log(helloNodejs!);
7}
导入
1/**
*main.js
*main.js和foo.js在同一目录下
*在控制台中将会输出:helloNodejs!
*/
varfoo=require(./foo.js);//导入foo.js
foo.hello();
module.exports与exports的区别
Nodejs中的每一个模块都会自动创建一个module对象,同时module对象下有一个
叫exports的属性,可以将某个类的实例赋值给module.exports,从而导出这个类的
实例。
1/**
2*foo.js
3*导入方式:varfoo=require(./foo.js);
4*使用方式foo.hello();
5*/
6functionFoo(){}
7Foo.prototype.hello=function(){
8console.log(helloNodejs!);
9}
10
11module.exportsnewFoo();
1/**
2*foo.js
3*导入方式:varFoo=require(./foo.js);
4*使用方式varfoonewFoo();foo.hello();
5*/
6functionFoo(){}
7Foo.prototype.hello=function(){
8console.log(helloNodejs!);
9}
10
11module.exportsFoo;
上面是使用module.exports导出对象的实例,那么现在我们知道在模块中想导出方法或
者数据可以使用module.exports或exports,但是他们之间有什么区别呢?
看下面这段代码
1//2.js
2exports={a:123};//我们希望通过exports导出对象实例
3
4//1.js
5constbbrequire(./2.js);
6
7console.log(bb.a)//undefined
8
从上面的代码中我们知道模块本意想导出一个对象实例,但是在模块以后却发现这个
实例并不存在?
为什么会这样?
其实上面我们,在每个模块中都包含一个module的对象,这个对象有一个属性叫
exports,我们可以通过给module.exports赋值来导出对象,而在这个页面中还存在另外
一个对象exports,这个对象其实是指向module.exports属
您可能关注的文档
- PS基础讲座:混合模式与图层详解.pdf
- 人教版(2019)物理选修一6 反冲现象 火箭 (12)教学课件PPT.pptx
- 人教版(2019)物理选修一6 反冲现象 火箭 (9)教学课件PPT.pptx
- 人教版(2019)物理选修一3 动量守恒定律 (10)教学课件PPT.pptx
- 人教版(2019)物理选修一4 单摆 (12)教学课件PPT.pptx
- 常州市某工程监理实施细则.docx
- 学生成绩管理系统-课程设计报告.doc
- 实习人员考核及管理办法..doc
- 2019届高考作文正标题、副标题和小标题的拟写技巧(刘).ppt
- 职业生涯规划(-精华版-)【优质PPT】.ppt
- 广告行为管理办法.doc
- 人教版(2019)物理选修一6 反冲现象 火箭 (5)教学课件PPT.pptx
- 人教版(2019)物理选修一5 弹性碰撞和非弹性碰撞 (13)教学课件PPT.pptx
- 人教版(2019)物理选修一6 反冲现象 火箭 (15)教学课件PPT.pptx
- 人教版(2019)物理选修一4 波的干涉 (7)教学课件PPT.pptx
- 人教版(2019)物理选修一1 光的折射教学课件PPT.pptx
- 人教版(2019)物理选修一6 反冲现象 火箭 (13)教学课件PPT.pptx
- 人教版(2019)物理选修一6 反冲现象 火箭 (4)教学课件PPT.pptx
- 人教版(2019)物理选修一1 波的形成 (9)教学课件PPT.pptx
- 人教版(2019)物理选修一6 光的偏振 激光 (3)教学课件PPT.pptx
最近下载
- 《SBT 11164-2016绿色仓库要求与评价》(2026年)实施指南.pptx VIP
- 宿迁思睿屹新材料有限公司年产3000吨2羟基6萘甲酸项目环境影响修编报告书.pdf VIP
- 金智学工管理系统功能白皮书.pdf VIP
- 2025年度医院党支部组织生活会临床医生个人对照检查材料.doc VIP
- 环境影响评价报告公示:新建热处理淬火、处理金属表面发黑项目环评报告.pdf VIP
- 译林版英语七年级上册首字母(短文篇).pdf VIP
- 《经颅电刺激技术在精神障碍临床应用中的操作规范》.docx
- 2025年福建省宁德市中考数学试卷真题(含标准答案).docx
- GB51110-2015:洁净厂房施工及验收规范.pdf VIP
- 核反应堆设计软件:FLUKA二次开发_(2).FLUKA二次开发环境搭建.docx VIP
原创力文档

文档评论(0)