node.js的板块化及reqire与exports释义
板块引入
板块化是node.js的核心概念,node.js对于服务端的操作都是封装成一个个独立的核心板块,以文件读写板块File System
为例:
// 引入文件操作板块let fs = require('fs')let filePath = './data/清平调.md'// 覆盖式写入数据fs.writeFile(filePath, "云想衣裳花想容\n", function (error) {})// 追加写入fs.appendFile(filePath, "春风拂槛露华浓\n", function (error) {})// 读取数据fs.readFile(filePath, function (error, data) { console.log(data.toString())})
执行结果:
? 01 [master] ? node 07.js云想衣裳花想容春风拂槛露华浓
node.js板块
require
node.js是经由require
关键字引入板块,板块分为:自带的核心板块,自己设置的板块。我们以自己设置板块为例解析require
的作使用:
在同级目录下新建4个文件:
? custom_module [master] ? tree.├── 01.js├── 02.js├── 03.js├── 04.js
01.js
let poem = '云想衣裳花想容'console.log(poem)require('./02.js')
02.js
let poem = '春风拂槛露华浓'console.log(poem)require('./03.js')
03.js
let poem = '若非群玉山头见'console.log(poem)require('./04.js')
04.js
let poem = '会向瑶台月下逢'console.log(poem)
01.js
引入了02.js
, 02.js
引入了03.js
, 03.js
引入了04.js
,这四个文件都有一个同名变量poem
,让我们运行一下,看同名变量能否会被覆盖
? custom_module [master] ? node 01.js云想衣裳花想容春风拂槛露华浓若非群玉山头见会向瑶台月下逢
由此可见,不同的板块有不同的命名空间,即便变量名称一致也不会相互污染。以上的侄子在require
文件时,就直接执行此文件的内容,但假如我们是想调使用板块里面的数据或者方法呢?
此时,就需要用exports
将板块的变量/方法暴露出来,以供引使用方调使用。
exports
在node中,一个文件就是一个板块。实际上,为了让各个文件里的变量互不干扰,node让每个板块都放在一个闭包中执行,这样实现的板块的隔离。而要让板块间相互联络,就需要暴露变量。而exports
就是负责对外暴露变量
05.js
let myExports = require('./06.js');console.log(myExports);console.log(myExports.name);let name = '地球三体组织'let goal = '消灭人类暴政,世界属于三体'console.log(myExports.goal(name, goal));
06.js
let name = '三体'exports.name = nameexports.goal = function (name, goal) { return name + '的目标是:' + goal}
执行结果:
? custom_module [master] ? node 05.js{ name: '三体', goal: [Function] }三体地球三体组织的目标是:消灭人类暴政,世界属于三体
由此可知,exports
是一个对象,假如板块要对外暴露变量,就需要将变量赋予作为exports
的属性
说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » node.js的板块化及reqire与exports释义
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » node.js的板块化及reqire与exports释义