node.js核心模块 path模块
简介
官网文档地址:http://nodejs.cn/api/path.html#path_path
它是也是node中的核心模块,作用是用来处理路径问题:拼接,分析,取后缀名等等。
使用步骤
- 引入模块。
const path = require('path')
- 使用模块。
path模块常用方法列表
方法 | 作用 |
---|---|
path.basename(path[, ext]) | 获取返回 path 的最后一部分(文件名) |
path.dirname(path) | 返回目录名 |
path.extname(path) | 返回路径中文件的扩展名(包含.) |
path.format(pathObject) | 将一个对象格式化为一个路径字符串 |
path.join([…paths]) | 拼接路径 |
path.parse(path) | 把路径字符串解析成对象的格式 |
path.resolve([…paths]) | 基于当前工作目录拼接路径 |
常用的api
-
path.basename()
:此方法返回 path 的最后一部分。一般可用来获取路径中的文件名。 -
path.join()
:路径拼接。 -
path.parse(pathurl)
:把一个路径转成一个对象
示例
path.basename('/foo/bar/baz/asdf/quux.html');// 返回: 'quux.html'
path.basename('/foo/bar/baz/asdf/quux.html', '.html');// 返回: 'quux'
path.dirname('/foo/bar/baz/asdf/quux');// 返回: '/foo/bar/baz/asdf'
path.extname('index.html');// 返回: '.html'
注意:不考虑其中地址是否真的存在,只是单纯调用方法,获取结果。
使用path模块解决文件读写中的路径拼写
// 拼接html5.jpg的绝对路径
// 1) 找到当前文件夹的绝对路径
console.log(__dirname)
// 2) 加上 html5.jpg
const fs = require('fs')
const path = require('path')
const filePath = path.join(__dirname, 'html5.jpg')
// const filePath = __dirname + '\\html5.jpg'
// 走一步,看一步
console.log(filePath)
fs.readFile(filePath,function(err, data) {
if(err) {
console.log(err)
return
}
console.log(data)
})
案例
对json数据进行操作。
|--db
|-----data.json
|--yourfile.js
data.json
[{"name":"小王"},{"name":"小李"}]
yourfile.js
// 这里写你的代码
// ......
// 完成的功能是: node yourfile.js之后,会在data.json中添加一条记录:
会在data.json中添加一条记录
[{"name":"小王"},{"name":"小李"},{"name":"小张"}]
代码演示
const fs = require('fs')
const path = require('path')
let filePath = path.join(__dirname, 'db', 'data.json')
fs.readFile(filePath, 'utf8', (err, data) => {
if (err) throw err
let arr = JSON.parse(data)
arr.push({ "name": "小张" })
let content = JSON.stringify(arr)
fs.writeFile(filePath, content, (err) => {
if (err) throw err
})
})