>  기사  >  웹 프론트엔드  >  노드의 fs 모듈과 경로 모듈에 대해 이야기해 보겠습니다.

노드의 fs 모듈과 경로 모듈에 대해 이야기해 보겠습니다.

青灯夜游
青灯夜游앞으로
2022-04-24 21:00:452283검색

이 기사는 node의 fs 파일 시스템 모듈과 경로 모듈을 안내합니다. 도움이 되기를 바랍니다.

노드의 fs 모듈과 경로 모듈에 대해 이야기해 보겠습니다.

fs 파일 시스템 모듈

fs 모듈은 파일 운영을 위해 Node.js에서 제공하는 공식 모듈입니다. 사용자의 파일 작업 요구 사항을 충족하는 일련의 방법과 속성을 제공합니다.

  • fs.readFile() 메서드는 지정된 파일의 내용을 읽는 데 사용됩니다.
  • fs.writeFile() 메서드는 지정된 파일에 내용을 쓰는 데 사용됩니다. JavaScript 코드로 작업하려면 fs를 사용하세요. 모듈 파일을 사용하려면 먼저 다음 방법을 사용하여 가져와야 합니다.
 const fs = reuire('fs')

지정된 파일의 내용을 읽습니다.

1 fs.readFile()의 구문 형식

fs를 사용합니다. readFile() 메서드를 사용하면 지정된 파일의 내용을 읽을 수 있습니다. 구문 형식은 다음과 같습니다.

 fs.readFile(path[, options], callback)
  • 매개변수 1: 필수 매개변수, 파일에 해당하는 경로를 나타내는 파일 경로 문자열을 지정해야 합니다. 읽을 수 있습니다.
  • 매개변수 2: 파일을 읽을 인코딩 형식을 나타내는 선택적 매개변수입니다.
  • 파라미터 3 : 필수 파라미터입니다. 파일 읽기가 완료된 후 콜백 함수를 통해 읽기 결과를 가져옵니다.

2.fs.readFile()의 샘플 코드

지정된 파일의 내용을 utf8 형식으로 읽고 err 및 데이터 값을 인쇄합니다.

 const fs = require('fs');
 fs.readFile('hello.txt', 'utf-8', (err, data) => {
     // 判断是否读取成功
     if (err) return console.log(err);
     console.log(data); 
 });

지정된 파일에 내용 쓰기

1. fs.writeFile()의 구문 형식

fs.writeFile() 메서드를 사용하여 지정된 파일에 내용을 씁니다. 구문 형식은 다음과 같습니다.

 fs.writeFile(file, data[, options], callback)
  • 매개변수 1: 필수 매개변수에는 파일의 저장 경로를 나타내는 파일 경로 문자열을 지정해야 합니다.
  • 매개변수 2: 작성할 내용을 나타내는 필수 매개변수입니다.
  • 매개변수 3: 파일 내용을 쓸 형식을 나타내는 선택적 매개변수입니다. 기본값은 utf8입니다.
  • 파라미터 4 : 필수 파라미터, 파일 쓰기 완료 후 콜백 함수.

2.fs.writeFile()

 const fs = require('fs');
 fs.writeFile('./hello.txt', 'hello node', (err) => {
     // 判断是否写入成功
     if (err) return console.log(err);
     console.log('写入成功');
 });

지정된 디렉터리에 있는 모든 파일의 이름을 읽습니다.

1.fs.readdir()의 구문 형식을 사용합니다. fs.readdir() 메서드는 지정된 디렉터리에 있는 모든 파일의 이름을 읽을 수 있습니다. 구문 형식은 다음과 같습니다.

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

매개변수 1: 파일 이름 목록을 읽을 디렉터리를 나타내는 필수 매개변수입니다.

    매개변수 2: 선택적 매개변수, 디렉터리에서 파일 이름을 읽는 형식, 기본값은 utf8입니다.
  • 파라미터 3 : 필수 파라미터, 읽기 완료 후 콜백 함수.
  • 2.fs.readdir() 샘플 코드

fs.readdir() 메서드를 통해 지정된 디렉터리에 있는 모든 파일의 이름을 읽을 수 있습니다.

 const fs = require('fs');
 fs.readdir('./', (err, data) => {
     // 错误处理
     if (err) return console.log(err);
     console.log(data);
 });

fs 모듈 경로 동적 접합 문제

fs 모듈을 사용하여 파일을 조작할 때, 제공된 작업 경로가 ./ 또는 ../로 시작하는 상대 경로인 경우 동적 경로 접합 오류가 발생하기 쉽습니다. 코드가 실행될 때 node 명령이 실행되는 디렉터리에서 동작 중인 파일의 전체 경로가 동적으로 이어지기 때문이다.

해결책: fs 모듈을 사용하여 파일을 작동할 때 절대 경로를 직접 제공하고 ./ 또는 ../로 시작하는 상대 경로를 제공하지 않아 동적 경로 접합 문제를 방지합니다.

참고: 현재 파일의 절대 경로를 얻으려면 __dirname을 사용하세요.

 const fs = require('fs');
 // 拼接要读取文件的绝对路径
 let filepath = __dirname +'/hello.txt'
 fs.readFile(filepath, 'utf-8', (err, data) => {
     // 判断是否读取成功
     if (err) return console.log(err);
     console.log(data); 
 });

경로 모듈

경로 모듈은 경로 처리를 위해 Node.js에서 공식적으로 제공하는 모듈입니다. 경로 처리에 대한 사용자의 요구 사항을 충족하는 일련의 메서드와 속성을 제공합니다.

path.join() 메서드, 여러 경로 조각을 전체 경로 문자열로 연결하는 데 사용됨

    path.basename() 메서드, 경로 문자열에서 파일 이름을 구문 분석하는 데 사용됨
  • 경로를 사용하려는 경우 JavaScript 코드에서 경로를 처리하려면 먼저 다음과 같은 방법으로 모듈을 가져와야 합니다:
  •  const path = require('path')

Path splicing

path.join() 구문 형식

path를 사용하면 됩니다. 여러 경로 조각을 전체 경로 문자열로 연결합니다. 구문 형식은 다음과 같습니다.

 path.join([...paths])

path.join() 메서드를 사용하여 여러 경로 조각을 전체 경로 문자열로 연결합니다.

 const path = require('path');
 console.log( path.join('a', 'b', 'c') ); // a/b/c
 console.log( path.join('a', '/b/', 'c') ); // a/b/c
 console.log( path.join('a', '/b/', 'c', 'index.html') ); // a/b/c/index.html
 console.log( path.join('a', 'b', '../c', 'index.html') ); // a/c/index.html
 console.log(__dirname); // node自带的全局变量,表示当前js文件所在的绝对路径
 // 拼接成绩.txt的绝对路径
 console.log( path.join(__dirname, '成绩.txt') ); // ------ 最常用的

다음에서 파일 이름을 가져옵니다. path

1. path.basename()

path.basename() 메서드를 사용하여 경로의 마지막 부분을 가져옵니다. 이 메서드는 종종 경로를 가져오는 데 사용됩니다. , 구문 형식은 다음과 같습니다.

 path.basename(path[,ext])

  • path  必选参数,表示一个路径的字符串
  • ext  可选参数,表示可选的文件扩展名
  • 返回:  表示路径中的最后一部分

2.path.basename()的代码示例

使用 path.basename() 方法,可以从一个文件路径中,获取到文件的名称部分:

 // 找文件名
 console.log( path.basename('index.html') ); // index.html
 console.log( path.basename('a/b/c/index.html') ); // index.html
 console.log( path.basename('a/b/c/index.html?id=3') ); // index.html?id=3
 console.log(path.basename('/api/getbooks')) // getbooks

获取路径中的文件扩展名

1.path.extname()的语法格式

使用 path.extname() 方法,可以获取路径中的扩展名部分,语法格式如下:

 path.extname(path)
  • path 必选参数,表示一个路径的字符串
  • 返回:  返回得到的扩展名字符串

使用 path.extname() 方法,可以获取路径中的扩展名部分

 // 找字符串中,最后一个点及之后的字符
 console.log( path.extname('index.html') ); // .html
 console.log( path.extname('a.b.c.d.html') ); // .html
 console.log( path.extname('asdfas/asdfa/a.b.c.d.html') ); // .html
 console.log( path.extname('adf.adsf') ); // .adsf

原文地址:https://juejin.cn/post/7088650568150810638

作者:L同学啦啦啦

更多node相关知识,请访问:nodejs 教程

위 내용은 노드의 fs 모듈과 경로 모듈에 대해 이야기해 보겠습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 juejin.cn에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제