<center>Nodejs之路径处理模块path</center>

Node.js path 模块提供了一些用于处理文件路径的小工具,我们可以通过以下方式引入该模块:

var path = require("path")

获取 /路径/文件名/扩展名

  • 获取路径:path.dirname(filepath)
  • 获取文件名:path.basename(filename)
  • 获取扩展名:path.extname(filepath)

获取所在路径

const path=require("path");
var filepath='/node/base/path/test.js';
console.log(
    path.dirname(filepath)
)
//输出/node/base/path

获取文件名
path.basename(filepath)实际上是获取了路径的最后一部分,
而不是真正的获取到了文件名,但是在实际应用中最后的字符往往就是我们的文件名

const path = require("path");
console.log(path.basename("/node/base/path/test.js"));
//输出    test.js
console.log(path.basename("/node/base/path/test/"));
//输出    test
console.log(path.basename("/node/base/path/test"));
//输出    test

如果只想获取文件名,不需要扩展名则可以使用第二个参数,第二个参数就是指定的文件扩展名

const path = require("path");
console.log(path.basename("/node/base/path/test.js",".js"));
//输出    test

获取文件扩展名

const path = require("path");
console.log(path.extname("/node/base/path/test.js",".js"));
//输出    .js

更详细的规则是如下:(假设 path.basename(filepath) === B )

从B的最后一个.开始截取,直到最后一个字符。
如果B中不存在.,或者B的第一个字符就是.,那么返回空字符串。

文件路径分解/组合
1.path.join([…paths])
2.path.resolve([…paths])

path.join(path1,path2,path3…)

作用:将路径片段使用特定的分隔符(window:\)连接起来形成路径,并规范化生成的路径。若任意一个路径片段类型错误,会报错。

const path = require('path');
let myPath = path.join(__dirname,'/img/so');
let myPath2 = path.join(__dirname,'./img/so');
let myPath3=path.join('/foo', 'bar', 'baz/asdf', 'quux', '..');
 
 
console.log(__dirname);           
console.log(myPath);    
console.log(myPath2);   
console.log(myPath3);  

path.resolve([from…],to)

作用:把一个路径或路径片段的序列解析为一个绝对路径。相当于执行cd操作。

/被解析为根目录

let myPath = path.resolve(__dirname,'/img/so');
let myPath2 = path.resolve(__dirname,'./img/so');
let myPath3=path.resolve('/foo/bar', './baz');
let myPath4=path.resolve('/foo/bar', '/tmp/file/');
 
console.log(__dirname);           
console.log(myPath);    
console.log(myPath2);   
console.log(myPath3);  
console.log(myPath4);  
抱歉,同样地,该代码也不符合 JSON 格式。建议您使用 HTML 解析器将其解析成一个 DOM 对象,然后再使用相关的方法将其转换为 JSON 格式。以下是一个示例代码,使用了 Node.js 中的 `cheerio` 模块来解析 HTML 并将其转换为 JSON 格式: ``` const cheerio = require('cheerio'); const html = '<html><head>123</head><body><tbody> <!-- vRepeat: data in queryList --><tr v-repeat="data in queryList" class="v-scope"> <td><input type="checkbox" v-model="RemitInBox" class="RemitInBox v-pristine v-valid" name="RemitInBox" value="0" v-checked="data.CheckFlag" v-disabled="data.FndDrc!=\'01\' || data.BusiState!=\'10\'" id="List0_RemitIn" v-click="clickBox($index,data)"></td> <td><span v-show="data.FndDrc!=\'04\'"><a class="userservice v-binding" href="####" v-click="goDetail(data)">IR00252300347A</a></span> <span v-show="data.FndDrc==\'04\'" class="v-binding" style="display: none;">IR00252300347A</span></td> <td class="v-binding">2023-05-25</td> <td class="v-binding">USD32,993.50</td> <td class="v-binding">1/FLOKSER KIMYA SANAYI VE TICARET 1...</td> <td class="v-binding">31980005000107125</td> <td><span v-show="data.FndDrc==\'01\'">入账</span> <span v-show="data.FndDrc==\'04\'" style="display: none;">退汇</span> <span v-show="!(data.FndDrc==\'04\'||data.FndDrc==\'01\')" style="display: none;">待客户确认</span> </td> <td class="v-binding">受理成功</td> <td> <span v-show="data.FndDrc==\'01\' && data.BusiState==\'10\'"> <a href="#" v-click="remitInPrint(data.BsnSrlNo)" class="userservice"> 打印 </a> </span> </td> </tr> </tbody> </body></html>'; const $ = cheerio.load(html); const tbody = $('tbody'); const result = []; tbody.find('tr').each((i, tr) => { const data = {}; $(tr).find('[v-repeat], [v-model]').each((j, el) => { const name = $(el).attr('v-repeat') || $(el).attr('v-model'); const value = $(el).attr('v-bind:value') || $(el).val() || $(el).text(); data[name] = value; }); result.push(data); }); console.log(result); ``` 该代码会输出一个包含了表格数据的 JSON 数组。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值