什么是模块化?
在nodejs中,应用由模块组成,nodejs中采用commonJS模块规范。
- 一个js文件就是一个模块
- 每个模块都是一个独立的作用域,在这个而文件中定义的变量、函数、对象都是私有的,对其他文件不可见。
模块化的分类
- 核心模块
由 node 本身提供,不需要单独安装(npm),可直接引入使用 - 第三方模块
由社区或个人提供,需要通过npm安装后使用 - 自定义模块
由我们自己创建,比如:test.js 、 user.js
核心模块
使用步骤:1. 先引入 、2. 再使用
fs:文件操作模块 http:网络操作模块 path:路径操作模块
引入模块的方法
// 引入模块 var fs = require('fs');
第三方模块
第三方模块是由 社区 或 个人 提供的
比如:moment模块,jquery模块…
使用步骤:1. 先通过npm下载、 2. 再引入 、3. 最后使用
- 下载包
npm install moment
如何引入并使用
// 1. 导入需要的包 // 注意:导入的名称,就是装包时候的名称 const moment = require('moment') const dt = moment().format('YYYY-MM-DD HH:mm:ss') console.log(dt)
- 卸载包指令(这里不需要使用)
npm uninstall 名称
自定义模块
由开发人员创建的模块(JS文件)
基本步骤:1. 创建模块、 2. 引入模块
注意:自定义模块的路径必须以 ./ 获者 …/ 开头
- 自定义时间格式化案例
// 定义格式化时间的方法 function dateFormat(dataStr) { const dt = new Date(dataStr) const y = dt.getFullYear() const m = padZeor(dt.getMonth() + 1) const d = padZeor(dt.getDate() ) const hh = padZeor(dt.getHours()) const mm = padZeor(dt.getMinutes()) const ss = padZeor(dt.getSeconds()) return `${y}年${m}月${d}日 ${hh}:${mm}:${ss}` } // 定义补零的函数 function padZeor(n) { return n > 9 ? n : '0' + n } module.exports = { dateFormat }
- 引入并使用案例
// 导入自定义的格式化时间的模块 const date = require("./dateFormat.js") // 调用方法,进行时间的格式化 const dt = new Date() console.log(dt) const newdt = date.dateFormat(dt) console.log(newdt)
module.exports与exports
在一个自定义模块中,默认情况下,module.exports = {}
// 向 module.exports 对象上挂载 username 属性 module.exports.username = "张三"
// 让 module.exports 指向一个全新的对象 // 永远以 module.exports 为准 exports = { nickname: "小黑", }
演示 module 对象
// 在每个 .js 自定义模块中都有一个 module 对象,他里面存储了和当前模块有关的信息 // module 可以访问其他模块内的对象 // module.exports 和 exports 指向同一个对象 // 最终结果永远以 module.exports 为准 console.log(module.exports) console.log(exports) console.log(module.exports == exports) // 在外界使用 require 导入一个自定义模块的时候,得到的成员就是那个模块中,通过 module.exports 执行的那个对象 const m = require('./06-模块作用域') console.log(m)
为了防止混乱,尽量不要在同一个模块中同时使用 exports 和 module.exports
以上就是 node.js 中 模块化的使用方法,不懂得也可以在评论区里问我,以后会持续发布一些新的功能,敬请关注。