nodejs常用模块(fs、path)
fs模块
为nodejs的核心模块之一,主要处理文件的读写、复制、s删除、重命名等操作。当需要使用该模块时,需要先导入该文件
var fs = require('fs');
1、fs.stat 检测是文件还是目录 同步方法:在结尾增加sync,如fs.statsync()
const fs = require('fs'); fs.stat('./module',(err,data)=>{ if (err) { console.log(err); return; } console.log(`是文件:${data.isFile()}`); console.log(`是目录:${data.isDirection()}`); })
2、fs.mkdir 创建目录 用法同上,同步方法:fs.mkdirSync
const fs = require('fs'); fs.mkdir('./test',(err)=>{ if (err) { console.log("创建失败"); return; } console.log("创建成功"); })
3、fs.writeFile 创建写入文件 用法:(路径及文件名称、写入内容、回调函数), fs.writeFileSync
const fs = require('fs'); fs.writeFile('./write.js','你好',(err)=>{ if (err) { console.log(err); return } console.log("创建写入成功") })
4.fs.appendFile 写入文件 用法同上
const fs = require('fs'); fs.appendFile('./write.js','\n插入的文字',(err)=>{ // \n为换行符 if (err) { console.log("写入失败"); } console.log("写入成功"); })
5、fs.readFile 读取文件
const fs = require('fs'); fs.readFile('./write.js',(err,data)=>{ if (err) { console.log("读取错误") return; } console.log(data);//输出十六进制数据 console.log(data.toString());//将十六进制转化为字符串 })
6、fs.readdir 读取目录
7、fs.rename 重命名 :1表示重命名,2表示移动文件 (用法:原文件路径及名称,新命名文件路径及名称)
const fs = require('fs'); fs.rename('./write.js','./write1.js',(err)=>{ if (err) { console.log("重命名失败"); } console.log("重命名成功"); })
移动文件功能只需在路径中修改即可
8、fs.rmdir 删除目录 用法同上
9、fs.uplink 删除文件 用法同上
10、fs.createReadStream以流的方式读取文件
11、fs.createWariteStream以流的方式读取文件
path 模块
提供了一些用于处理文件路径的小工具,我们可以通过以下方式引入该模块:
var path = require("path")
注意:各平台(windows/mac)路径显示和拼接不一致。
序号 | 方法 & 描述 |
---|---|
1 | path.normalize(p) 规范化路径,注意'..' 和 '.'。 |
2 |
path.join([path1][, path2][, ...]) path.join('/foo', 'bar', 'baz/asdf', 'quux', '..'); // Returns: '/foo/bar/baz/asdf' path.join('foo', {}, 'bar'); // Throws 'TypeError: Path must be a string. Received {}' |
3 | path.resolve([from ...], to) 将 to 参数解析为绝对路径,给定的路径的序列是从右往左被处理的,后面每个 path 被依次解析,直到构造完成一个绝对路径。 例如,给定的路径片段的序列为:/foo、/bar、baz,则调用 path.resolve('/foo', '/bar', 'baz') 会返回 /bar/baz。 path.resolve('/foo/bar', './baz'); // 返回: '/foo/bar/baz' path.resolve('/foo/bar', '/tmp/file/'); // 返回: '/tmp/file' path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif'); // 如果当前工作目录为 /home/myself/node, // 则返回 '/home/myself/node/wwwroot/static_files/gif/image.gif' |
4 | path.isAbsolute(path) 判断参数 path 是否是绝对路径。 |
5 | path.relative(from, to) 用于将绝对路径转为相对路径,返回从 from 到 to 的相对路径(基于当前工作目录)。 //在 Linux 上: path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb'); // 返回: '../../impl/bbb' //在 Windows 上: path.relative('C:\\orandea\\test\\aaa', 'C:\\orandea\\impl\\bbb'); // 返回: '..\\..\\impl\\bbb' |
6 |
path.dirname(p) path.dirname('/foo/bar/baz/asdf/quux'); // Returns: '/foo/bar/baz/asdf' |
7 |
path.basename(p[, ext]) path.basename('/foo/bar/baz/asdf/quux.html'); // Returns: 'quux.html' path.basename('/foo/bar/baz/asdf/quux.html', '.html'); // Returns: 'quux' |
8 |
path.extname(p) path.extname('index.html'); // Returns: '.html' path.extname('index.coffee.md'); // Returns: '.md' path.extname('index.'); // Returns: '.' path.extname('index'); // Returns: '' |
9 |
path.parse(pathString) //mac path.parse('/home/user/dir/file.txt'); //Returns: { root: '/', dir: '/home/user/dir', base: 'file.txt', ext: '.txt', name: 'file' } //windows path.parse('C:\\path\\dir\\file.txt'); // Returns: { root: 'C:\\', dir: 'C:\\path\\dir', base: 'file.txt', ext: '.txt', name: 'file' } |
10 |
path.format(pathObject) path.format({ root: '/ignored', dir: '/home/user/dir', base: 'file.txt' }); // Returns: '/home/user/dir/file.txt' |