node开发之模块学习总结

最新更新时间:2021年01月13日16:06:59
《猛戳-查看我的博客地图-总有你意想不到的惊喜》

本文内容:读取本地文件、向本地文件写入内容、生成字符串和文件的md5值

fs-文件系统模块
  • 基本API
var fs = require("fs")
fs.open();//打开文件
fs.read();//读取文件
fs.close();//关闭文件

fs.stat();//获取文件信息
fs.writeFile();//写入文件
fs.readFile();//异步读取文件
fs.ftruncate();//截取文件
fs.unlink();//删除文件
fs.mkdir();//创建目录
fs.readdir();//读取目录
fs.rmdir();//删除目录
  • 读取txt文件
//demo.txt 内容为 wanshaobo
var fs = require("fs")
fs.readFile(path.resolve('./demo.txt'), 'utf-8', function (err:any, data:any) {
	if(err) {
		console.log(err);
	} else {
		console.log(data);//wanshaobo
	}
});
  • 读取文件demo.txt,文件内容为wanshaobo
var fs = require("fs");
var data = '';
var readerStream = fs.createReadStream('demo.txt');// 创建可读流
readerStream.setEncoding('UTF8');// 设置编码为 utf8。
// 处理流事件 --> data, end, error
readerStream.on('data', function(chunk) {
   data += chunk;
});
readerStream.on('end',function(){
   console.log(data);//wanshaobo
});
readerStream.on('error', function(err){
   console.log(err.stack);
});
  • 擦除demo.txt已有内容,写入age
var fs = require("fs");
var data = 'age';
//var writerStream = fs.createWriteStream('output.txt', 'utf-8');
var writerStream = fs.createWriteStream('output.txt');// 创建一个可以写入的流,写入到文件 output.txt 中
writerStream.write(data,'UTF8');// 使用 utf8 编码写入数据
writerStream.end();// 标记文件末尾
// 处理流事件 --> finish、error
writerStream.on('finish', function() {
    console.log("写入完成。");
});
writerStream.on('error', function(err){
   console.log(err.stack);
});
crypto-文件加密模块
  • 生成字符串的md5,MD5是一种常用的哈希算法,用于给任意数据一个“签名”
const crypto = require('crypto');
const hash = crypto.createHash('md5');
hash.update('wan');
hash.update('shao');// 可任意多次调用update():
hash.update('bo');// 可任意多次调用update():
const string_md5 = hash.digest('hex')
console.log(string_md5);//7e1977739c748beac0c0fd14fd26a544
  • 生成文件的md5,MD5是一种常用的哈希算法,用于给任意数据一个“签名”
const crypto = require('crypto');
const hash = crypto.createHash('md5');
const filePath = path.resolve('./', 'demo.txt');
const rs =fs.createReadStream(filePath); // test.js 为上传的文件
rs.on('data', (chunk:any) => {
	hash.update(chunk);
});
rs.on('end', function() {
	const file_md5 = hash.digest('hex');
	console.log(file_md5)
});

文件常用操作

清空文件夹下所有内容
  • 同步
var fse = require('fs-extra');
fse.emptyDirSync('/test/a');
删除文件夹,同时包含里面的全部内容
  • 同步
var fse = require('fs-extra');
fse.removeSync('/test/a');
将a文件夹下的所有内容复制到b文件夹下
  • 同步
//process.cwd() 方法返回 Node.js 进程的当前工作目录
let formPath = path.join(process.cwd(),`/test/a/`);// 有/是复制文件夹下的内容 没有a/复制包含文件夹
let toPath = path.join(process.cwd(),`/test/b`);
child_process.spawnSync('cp', ['-r', formPath, toPath]);
参考资料

感谢阅读,欢迎评论^-^

打赏我吧^-^

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值