const fs=require('fs')
//第一种方式:普通读取
// fs.readFile('../资料/学习流程.jpeg',(err,data)=>{
// if(err){
// console.log('文件读取失败');
// return;
// }
// console.log(data);
// fs.writeFile('../资料/学习流程2.jpg',data,err=>{
// if(err){
// console.log('写入失败');
// return;
// }
// console.log('写入成功');
// })
// })
//第二种方式:流式读取写入
const rs=fs.createReadStream('../资料/学习流程.jpeg')
const ws=fs.createWriteStream('../资料/学习流程3.png')
rs.on('data',chunk=>{
//console.log('读取成功');
console.log(chunk);
ws.write(chunk)
})
708_fs模块_文件流式读取
发表于
分类于
nodejs
const fs=require('fs')
//创建读取流对象
const rs=fs.createReadStream('../资料/学习流程.jpeg')
//绑定data事件
rs.on('data',chunk=>{
console.log(chunk.length);
})
//end是可选事件
rs.on('end',()=>{
console.log('读取完成');
})
708_fs模块_文件读取
发表于
分类于
nodejs
const fs=require('fs')
//参数说明:
//path 文件路径
//options 选项配置
//callback 回调函数
//异步读取
// fs.readFile('./观书有感.txt',(err,data)=>{
// if(err){
// console.log('读取失败');
// return;
// }
// console.log('读取成功');
// console.log(data.toString());//默认输出的是Buffer,所以要转化为字符串形式
// })
//同步读取
let data=fs.readFileSync('./观书有感.txt')
console.log(data.toString());//默认输出的是Buffer,所以要转化为字符串形式
708_fs模块_流式写入
发表于
分类于
nodejs
//导入fs模块
const fs=require('fs');
//创建写入流对象,适用于写入较为频繁的场景
//(要传递文件的写入路径)
const ws=fs.createWriteStream('./观书有感.txt')
//流式写入
ws.write('半亩方塘一鉴开\r\n');
ws.write('天光云影共徘徊\r\n');
ws.write('问渠那得清如许\r\n');
ws.write('为有源头活水来\r\n');
//关闭通道
ws.close();
708_fs模块_文件追加写入
发表于
分类于
nodejs
const fs=require('fs')
//在我呢见末尾追加写入(同步)
// \r\n表示换行
fs.appendFile('座右铭.txt',',择善而从',err=>{
if(err){
console.log('文件追加失败');
return;
}
console.log('文件追加成功');
})
//异步
fs.appendFileSync('座右铭.txt','\r\n择善而从')
708_fs模块_文件写入(同步异步)
发表于
分类于
nodejs
const fs=require('fs');
// 参数说明:
// file 文件名
// data 待写入的数据
// options 选项设置 (可选)
// callback 写入回调
//同步写入:js代码向下执行,将写入文件的操作交给IO线程,自己继续向下执行,全部执行完毕后从栈中去除数据
fs.writeFile('./座右铭.txt','三人行,则必有我师',err=>{
//err 写入成功,err为一个对象;写入失败,err则为null
if(err){
console.log('写入失败');
return;
}
console.log('写入成功');
})
console.log(1+1);
//异步写入:js代码等待文件写入执行完毕后继续向下执行
fs.writeFileSync('./data.txt','test');
708_Buffer
发表于
分类于
nodejs
Buffer(缓冲器)
1、概念
Buffer 是一个类似于数组的 对象 ,用于表示固定长度的字节序列
Buffer 本质是一段内存空间,专门用来处理 二进制数据
2、特点
1、Buffer 大小固定且无法调整
2、Buffer 性能较好,可以直接对计算机内存进行操作
3、每个元素的大小为 1 字节(byte)
//1、alloc,要对旧数据进行清零,速度慢
let buf=Buffer.alloc(10);
// console.log(buf);
//2、allocUnsafe,不会对数据进行清零,速度快
let buf_2=Buffer.alloc(10000);
// console.log(buf_2);
//from:转化为16进制
let buf_3=Buffer.from('hello');
// console.log(buf_3);
//buffer转化为字符串
let buf_4=Buffer.from([105, 108, 111, 118, 101, 121, 111, 117]);
console.log(buf_4.toString());//iloveyou
707_webpack基本配置
发表于
分类于
webpack
1、entry(入口)
指示 Webpack 从哪个文件开始打包
2、output(输出)
指示 Webpack 打包完的文件输出到哪里去,如何命名等
3、loader(加载器)
webpack 本身只能处理 js、json 等资源,其他资源需要借助 loader,Webpack 才能解析
4、plugins(插件)
扩展 Webpack 的功能
5、mode(模式)
主要由两种模式:
- 开发模式:development
- 生产模式:production
const path = require("path");//用来处理路径问题
module.exports = {
//入口
entry: "./src/main.js",//相对路径
//输出
output: {
//文件的输出路径
//__dirname表示node.js变量,表示当前文件的文件夹目录
path: path.resolve(__dirname, 'dist'),//绝对路径
//文件名
filename: 'main.js',
},
//加载器
module: {
rules: [
//loader的配置
]
},
//插件
plugins: [],
//模式
mode: "development"
}
707_webpack前言
发表于
分类于
webpack
1、为什么要学习webpack?
开发时,我们会使用框架(React、Vue),ES6 模块化语法,Less/Sass 等 css 预处理器等语法进行开发。
这样的代码要想在浏览器运行必须经过编译成浏览器能识别的 JS、Css 等语法,才能运行。
所以我们需要打包工具帮我们做完这些事。
除此之外,打包工具还能压缩代码、做兼容性处理、提升代码性能等。
2、基本使用:
Webpack 是一个静态资源打包工具。
它会以一个或多个文件作为打包的入口,将我们整个项目所有文件编译组合成一个或多个文件输出出去。
输出的文件就是编译好的文件,就可以在浏览器段运行了。
我们将 Webpack 输出的文件叫做 bundle。
3、功能介绍
Webpack 本身功能是有限的:
- 开发模式:仅能编译 JS 中的
ES Module语法 - 生产模式:能编译 JS 中的
ES Module语法,还能压缩 JS 代码
707_解构赋值
发表于
分类于
ES6
<script>
//数组解构
let ary = [1, 2, 3];
let [a, b, c, d] = ary;
//若解构不成功就被定义为undefine
console.log(a);//1
console.log(b);//2
console.log(c);//3
console.log(d);//undefined
//解构赋值可以指定默认值
//解构赋值也可以引用其他变量,但必须是已经声明的
let [x = 1, y = x] = []
console.log(x);//1
console.log(y);//1
//对象解构
let person = { name: '我的', age: 18 }
let { name, age } = person
console.log(name);//我的
console.log(age);//18
let { name: myName } = person;
console.log('myName的值为' + myName);
</script>