ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

nodejs常用模块(fs、path)

2022-04-25 15:00:25  阅读:181  来源: 互联网

标签:bar fs console log err nodejs 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][, ...])
用于连接路径。该方法的主要用途在于,会正确使用当前系统的路径分隔符,Unix系统是"/",Windows系统是"\"。

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)
返回路径中代表文件夹的部分,同 Unix 的dirname 命令类似。

path.dirname('/foo/bar/baz/asdf/quux');
// Returns: '/foo/bar/baz/asdf'
7

path.basename(p[, ext])
返回路径中的最后一部分。同 Unix 命令 bashname 类似。

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.parse 相反。

path.format({
  root: '/ignored',
  dir: '/home/user/dir',
  base: 'file.txt'
});
// Returns: '/home/user/dir/file.txt'

标签:bar,fs,console,log,err,nodejs,path
来源: https://www.cnblogs.com/liangtao999/p/16190154.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有