node.js(三)
文章目录
前言
简单介绍三种基本的模块,着重介绍了fs模块,举出一些例子。
一、查询字符串模块(querystring)
查询字符串是浏览器端向服务器端传递数据的一种方式,位于URL中,
https://search.js.com/Search?keyword=电视&&utf-8
查询字符串模块用于操作查询字符串的工具模块
parse() 将查询字符串解析为对象
const querystring=require('querystring');// 引入查询字符串模块
// console.log(querystring);
let str='keyword=笔记本&price=4199';// 查询字符串模块
let obj=querystring.parse(str);//使用查询字符串模块解析为对象parse
console.log(obj);
console.log(obj.keyword+'\t',obj.price);
二、URL模块
URL:统一资源定位符,互联网上的任何都用对应的网址可以访问到,这个网址就是URL。
http://www.codeboy.com:9999/admin/login.html?lid=1
http协议 域名/IP地址 端口 文件路径 查询字符串
URL模块是用来操作URL的工具模块
parse() 将URL解析为对象,可以得到各个部分
代码如下(示例):
let url = require('url');//引入url模块
let str = 'http://www.codeboy.com:9999/product.html?lid=1';//URL
let obj = url.parse(str);//将URL解析为对象
console.log(obj);
console.log(`
协议: ${obj.protocol}
域名: ${obj.host}
端口: ${obj.port}
路径: ${obj.pathname}
查询: ${obj.query}
URL : ${obj.href}
`);
三、文件系统模块
let file = require('fs');//引入文件模块
1)查看文件状态(同步/异步)
statSync(路径)/stat(路径,回调函数)
回调函数(err,s)=>{},s不是必须的
err 可能产生的错误
s 获取成功的结果(是一个对象)
isFile() 是否为文件检测
isDirectory() 检测是否为目录
2)查看目录下的文件
readdirSync(‘文件路径’)/readdir(‘文件路径’,回调函数);
回调函数(err,result)=>{},result不是必须的
err 可能产生的错误
result 获取成功的结果(是一个数组)
//同步
let re=file.readdirSync('../day020');//同步
console.log(re);
console.log('ending');
//异步
let re=file.readdir('../day02',(err,result)=>{
if(err){
throw err;
}
console.log(result);
});
console.log('ending');
3)异步创建目录/文件
mkdir(‘path’,callback);
创建成功cellback不返回任何结果,只在目录下多出一个目录
file.mkdir('./01',(err)=>{
if(err) throw err;
});
4)异步移除目录/文件
rmdir(‘path’,callback);//成功不返回任何值,移除
file.rmdir('./01',(err)=>{
if(err) throw err;
});
5)覆盖文件写入内容
writeFileSnyc(‘path’,‘content’);/writeFile(‘path’,‘content’,callback);//成功不返回任何值
首先判断文件是否存在,不存在则创建写入数据,存在的话覆盖写入。
同步
file.writeFileSync('./01.txt','daijigia');
异步
file.writeFile('./02.txt','然哥',(err)=>{
if(err) throw err;
});
6)追加写入
appendFileSync(‘path’,‘content’)/appendFile(‘path’,‘content’,callback);
首先判断文件是否存在,不存在则创建写入数据,如果存在则在文件的末尾追加函数
file.appendFileSync('./1.txt','离开了达内');//同步
file.appendFile('./02.txt','beautiful',(err)=>{//异步
if(err) throw err;
});
7)重命名文件
renameSync(‘oldName’,‘newName’)/renameSync(‘oldName’,‘newName’,callback)
file.renameSync('./1.txt','01.txt');
file.rename('./01.txt','1.txt',(err,c)=>{
if(err) throw err;
console.log(c);
});
8)读取文件
readFileSync(‘path’)/readeFile(‘path’,callback);
callback(‘err’,data); data是读取成功的buffer,需使用toString()方法转换输出
//读取文件
let data=file.readFileSync('./stu.txt');
console.log(data.toString()); */
file.readFile('./stu.txt',(err,data)=>{
if (err) throw err;
console.log(data.toString());
});
9)删除文件
unlinkSync(’'path)/unlink(‘path’,callback)
file.unlinkSync('./01.txt');
file.unlink('./02.txt',(err)=>{
if(err) throw err;
});
10)检测一个文件(目录)是否存在
existsSync(‘path’); =>true false
11)拷贝文件
copyFile(‘path’,‘newpath’,callback);
file.copyFile('./stu.txt','../day03/stu1.txt',(err)=>{
if(err) throw err;
});
总结
Node.js中有很多模块,要想熟练的使用这些模块的功能还需要去看官方文档。