Node.js文件fs、url、qs模块操作

 目录

一.fs

1.读取文件目录

2.创建文件(覆盖写入)

3.将数据追加到文件

4.读取文件

5.删除文件

二.URL

url结构组成:

 1.url字符串转对象

2.url对象转字符串 

三.qs (querystring)

1.字符串转对象

2.对象转字符串

3.编码

4.解码


使用node.js的模块之前需要在使用的js中引入相应模块

如:

let fs=require('fs');

let url=require('url'); 

 let qs=require('querystring');

一.fs

fs模块内的方法均有同步和异步操作,如读取文件夹的同步操作为fs.readdirSync(path[, options]),异步操作为fs.readdir(path[, options], callback)

1.读取文件目录

同步读取: fs.readdirSync(path[, options])

其中path为文件夹路径,[ ]中的内容可以不写

let dirs=fs.readdirSync('./');
console.log(dirs); 

异步读取:fs.readdir(path[, options], callback)

其中path为文件夹路径,[ ]中的内容可以不写,callback是回调函数

回调有两个参数 (err, files),其中 files 是目录中文件名的数组

err默认为null,当执行出现错误时,err为错误

let dirs=fs.readdir('./',(err,data)=>{
    if(err){
        console.log(err);
    }else{
        console.log(data);
    }
})
console.log(dirs);

2.创建文件(覆盖写入)

fs.writeFile(file, data[, options], callback)

其中file为文件名或文件描述符,data为文件内容,callback为回调函数

当 file 是文件名时,将数据异步地写入文件,如果文件已存在则替换该文件。 data 可以是字符串或缓冲区。

当 file 是文件描述符时,其行为类似于直接调用 fs.write()

fs.writeFile('next.txt','今天是个好日子',(err,data)=>{
    if(err){ 
       console.log(err);
    }
})

3.将数据追加到文件

fs.appendFile(path, data[, options], callback)

异步地将数据追加到文件,如果该文件尚不存在,则创建该文件。 data 可以是字符串或<Buffer>

其中path为文件名或文件描述符,data为追加内容,callback为回调函数

fs.appendFile('next.txt','加油加油',(err)=>{
    console.log(err);
})

4.读取文件

fs.readFile(path[, options], callback)

异步地读取文件的全部内容

path为文件名或文件描述符,callback为回调函数

fs.readFile('next.txt',(err,msg)=>{
    if(err){
        console.log(err);
    }else{
        console.log(msg.toString('UTF-8'));    //默认读取二进制数据流
    }
})

5.删除文件

fs.unlink(path, callback)

异步地删除文件或符号链接。 除了可能的异常(err)之外,没有为完成回调提供任何参数

path为文件名或文件描述符,callback为回调函数

fs.unlink('./next.txt',(err)=>{
    if(err){
        console.log(err);
    }
})

注:fs.unlink() 不适用于目录,无论是空目录还是其他目录。 要删除目录,请使用fs.rmdir()

二.URL

URL代表着是统一资源定位符(Uniform Resource Locator),是一个给定的独特资源在 Web 上的地址,理论上说,每个有效的 URL 都指向一个唯一的资源。

网址字符串是包含多个有意义组件的结构化字符串。 解析时,将返回包含每个组件的属性的网址对象。

url结构组成:

 1.url字符串转对象

url.parse(urlString[, parseQueryString[, slashesDenoteHost]])

urlString为要解析的 URL 字符串

let url=require('url');
let urlString='https://nodejs.org/dist/v18.15.0/docs/api/url.html';
let urlobj=url.parse(urlString)
console.log(urlobj);

输出结果为:

Url {
  protocol: 'https:',
  slashes: true,
  auth: null,
  host: 'nodejs.org',
  port: null,
  hostname: 'nodejs.org',
  hash: null,
  search: null,
  query: null,
  pathname: '/dist/v18.15.0/docs/api/url.html',
  path: '/dist/v18.15.0/docs/api/url.html',
  href: 'https://nodejs.org/dist/v18.15.0/docs/api/url.html'
}

2.url对象转字符串 

url.format(urlObject)

urlobject为网址对象

url.format() 方法返回从 urlObject 派生的格式化网址字符串。

let obj={
        protocol: 'https:',
        slashes: true,
        auth: null,
        host: 'nodejs.org',
        port: null,
        hostname: 'nodejs.org',
        hash: null,
        search: null,
        query: null,
        pathname: '/dist/v18.15.0/docs/api/url.html',
        path: '/dist/v18.15.0/docs/api/url.html',
        href: 'https://nodejs.org/dist/v18.15.0/docs/api/url.html'
}
let string=url.format(obj);
console.log(string);

输出结果为:

https://nodejs.org/dist/v18.15.0/docs/api/url.html

三.qs (querystring)

node:querystring 模块提供了用于解析和格式化网址查询字符串的实用工具

1.字符串转对象

querystring.parse(str[, sep[, eq[, options]]])

将网址查询字符串 (str) 解析为键值对的集合

  • str 要解析的网址查询字符串
  • sep 用于在查询字符串中分隔键值对的子字符串。 默认值 '&'
  • eq     用于分隔查询字符串中的键和值的子字符串。 默认值 '='
let qs=require('querystring');
let string='name=hahaha&key=lalala&pass=123';
let obj=qs.parse(string)
console.log(obj);  //{ name: 'hahaha', key: 'lalala', pass: '123' }

2.对象转字符串

querystring.stringify(obj[, sep[, eq[, options]]])

 该方法通过遍历对象的 "自有属性" 从给定的 obj 生成 URL 查询字符串。

obj为要序列化为网址查询字符串的对象

let strings=qs.stringify(obj,'#','-');
console.log(strings); //name-hahaha#key-lalala#pass-123

3.编码

querystring.escape(str)

该方法以针对网址查询字符串的特定要求优化的方式对给定的 str 执行网址百分比编码。

let ojb=qs.escape(strign)
console.log(ojb); //w%3D%E4%BD%A0%E5%A5%BD%E5%91%80%26name%3Dhaha

4.解码

querystring.unescape(str)

方法在给定的 str 上执行网址百分比编码字符的解码。

let strgin=qs.unescape(ojb);
console.log(strgin); //w=你好呀&name=haha

参考文档:Index | Node.js v18.16.0 Documentation (nodejs.org)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供关于使用Node.js的xml2js模块操作xml数据的一些信息。 首先,xml2js是一个Node.js模块,用于将XML数据转换为JavaScript对象。您可以使用它来解析XML文件或字符串,并将其转换为JavaScript对象,以便更轻松地操作和处理数据。 以下是使用xml2js模块将XML数据解析为JavaScript对象的步骤: 1. 安装xml2js模块。您可以使用npm包管理器安装该模块,命令如下: ``` npm install xml2js ``` 2. 引入xml2js模块并创建解析器对象。在Node.js应用程序中,您可以使用require函数引入模块。然后,您可以使用该模块的解析器对象将XML数据转换为JavaScript对象。以下是示例代码: ```javascript const xml2js = require('xml2js'); const parser = new xml2js.Parser(); ``` 3. 使用解析器对象解析XML数据。您可以使用解析器对象的parseString函数将XML数据解析为JavaScript对象。该函数接受两个参数:要解析的XML数据和一个回调函数。回调函数将接收解析后的JavaScript对象作为参数。以下是示例代码: ```javascript const xmlData = '<book><title>JavaScript: The Good Parts</title><author>Douglas Crockford</author></book>'; parser.parseString(xmlData, (err, result) => { if (err) { console.error(err); } else { console.log(result); } }); ``` 在上面的示例中,我们将一个包含书名和作者的XML字符串传递给parseString函数。然后,我们在回调函数中打印解析后的JavaScript对象。 希望这些信息能够帮助您开始使用xml2js模块操作XML数据。如果您有任何其他问题,请随时问我!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值