前端模块化规范
// AMD(Asynchronous module definition):异步模板定义规范
// 专门用于浏览器端,模板的加载是异步的
// AMD主要通过require.js实现模块化(通过define方法,将代码定义成模块,通过require,实现代码的模块加载)
1.node.js中模块的分类
模块的分类,根据来源的分类
// 1,内置模块(由node.js官方提供的)
// 2,用户自定义模块(用户创建的每一个js文件)
// 3,第三方模块(由第三方开发出来的,使用前需下载)
加载模块化所需语法
加载模块:
// 使用require()方法,加载所需的三大模块其中之一
// 加载内置的模块
// const fs =require('模块的名字 ')
// 加载用户自定义模块
// const custom = require('指定的自定义模块路径,可以省略'.js'这个后缀名')
// 加载第三方模块
// const moment = require('模块的名字')
语法:暴露模块
// module exports = value
// export xxx = value
// 引入模块
require(xxx)
//导入模块
require('模块名')
//const fs=reqrire('fs')(一般会定义一个变量名接收)
//读取文件
fs.readFile('文件的路径',(err,data) => {
//不管是读取成功,还是读取失败,都会调用这个回调函数。
//如果读取失败,err里就会有错误信息。
//如果读取成功,err为空,data里就会有读取的内容
})
//写入文件
fs.writeFile('文件的路径',写入的内容,err =>{
//写入完成调用的回调函数。
//如果成功err就为空,如果失败err就有值。
})
const fs = require('fs')
fs.readFile('../01.txt',(err,data) =>{
if(!err){
console.log('失败?',data.toString());
}
})
fs.writeFile('../02.txt','充满鲜花的世界到底在哪里',err =>{
if(err){
console.log('读取失败了',err);
}else{
console.log('读取成功');
}
})
console.log('海绵宝宝的幽默');
// 导入模块
// const 变量 = require('路径')
const hq = require('./sweet')
console.log(hq);
console.log(hq.happy);
console.log(hq.habit);
console.log(hq.mylove);
hq.love('快使出海绵宝宝的幽默,我喜欢你的小糊涂')
const habit = '黑凤梨'
const happy = '稀罕你'
const mylove = 'i choose you over and over'
function love(happ1) {
console.log('mylove' + happ1);
}
// 暴露模块
// module.exports = 暴露的数据
//eg
module.exports = {
habit,
happy,
mylove,
love
}