标签:CommonJS 包与 const name 05 age exports js 模块
模块/包与CommonJS
1.模块/包分类
Node.js有三类模块,即内置模块、第三方的模块、自定义的模块
- 内置模块
const path = require('path')
var extname = path.extname('index.html')
console.log(extname)
- 第三方的Node.js模块
第三方的Node.js模块指的是为了实现某些功能,发布的npmjs.org上的模块,按照一定的开源协议供社群使用。如:
npm install chalk
const chalk = require('chalk')
console.log(chalk.blue('Hello world'))
-
自定义的Node.js模块
自定义的Node.js模块,也叫文件模块,是我们自己写的供自己使用的模块。同时,这类模块发布到npmjs.org上就成了开源的第三方模块。
自定义模块是在运行时动态加载,需要完整的路径分析、文件定位、编译执行过程、速度相比核心模块稍微慢一些,但是用的非常多。 -
模块定义、接口暴露和引用接口
我们可以把公共的功能抽离成一个单独的js文件作为一个模块,默认情况下这个模块里的方法或者属性,外面是无法访问的。如果要让外面可以访问模块里面的方法或者属性,就必须在模块里面通过exports或者module.exports暴露属性或者方法。
四个步骤
第一步:定义模块
// 第一步:定义模块
const name = {
surname: 'zhang',
sayName() {
console.log(this.surname)
}
}
// 第一步:定义模块
const age = {
age: 100
}
// 第二步:暴露接口
// module.exports = { name, age }
// const exports = module.exports
// exports 相当于 module.exports 的引用
// 第二步:暴露接口
exports.name = name
exports.age = age
// 第三步:导入模块
const { name, age } = require('./name')
// 第四步:使用模块
name.sayName()
console.log(age.age)
标签:CommonJS,包与,const,name,05,age,exports,js,模块 来源: https://blog.csdn.net/weixin_38644630/article/details/114898976
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。