Node.js(三)——模块化

文章目录

    • 什么是模块化
    • Node里模块的分类
    • module对象
    • module.exports对象
    • exports和modul.exports误区

node编程中最重要的思想之一就是模块,而正是这个思想,让JavaScript的大规模工程成为可能

什么是模块化

遵守固定的规则 , 把一个大文件拆成独立并互相依赖的多个小模块

  • 好处
  1. 提高了代码的复用性
  2. 提高了代码的可维护性
  3. 可以实现按需加载

Node里模块的分类

  1. 内置模块 (由Node.js官方提供 , 比如fs , path , http)
  2. 自定义模块(用户创建的每个.js文件都是自定义模块)
  3. 第三方模块(由第三方开发出来的模块, 使用前需要下载)
  • 加载模块 用require()方法
const fs = require('fs')
const custom = require('./custom.js') //可以省略后面的后缀名
const mement = require('moment')
  • 模块作用域
    跟函数作用域类似 , 在自定义模块中定义的变量 , 方法等, 只能在当前模块内被访问 , 这种模块级别的访问限制 , 叫模块作用域 , 可以防止全局污染

module对象

定义: 每个.js文件里面都有一个moudle对象 , 它里面存储了和当前模块有关的信息

module.exports对象

在自定义模块中 , 可以使用moudle.exports对象 , 将模块化的成员共享出去 , 供外界使用
外界使用require()方法导入自定义模块时 , 得到的就是moudle.exports所指向的对象
并且导出的对象 , 永远以moudle.exports指向的对象为准

exports和modul.exports误区

export.username = 'zs'
----------
moudle.exports = {
	sex : '男',
	age : 19
}
//{sex :'男', age :19}
moudle.exports.uname = 'sd'
-----------------------------
exports = {
	sex : '男',
	age : 25
}
//uname : 'sd'
exports.uname = 'kd'
-----------------
moudle.exports.sex = '男'
//{uname :'kd', sex :'男'}
exports = {
	uname: 'df',
	sex: '男'
}
moudle.exports = exports
moudle.exports.age = 23
//{uname: 'df', sex: '男', age: 23}

为了防止混淆 , 建议不要在同一个模块中同时使用exportsmoudle.exports

你可能感兴趣的:(#,Node.js,node.js)