programing

node.js에서 path.join을 사용해야 합니까?

topblog 2023. 4. 28. 20:01
반응형

node.js에서 path.join을 사용해야 합니까?

Windows는 백슬래시로 경로를 수행하지만 Unix는 포워드슬래시로 경로를 수행합니다.node.js는 항상 올바른 슬래시를 사용하도록 제공합니다.예를 들어 유닉스만 쓰는 대신'a/b/c'당신은 할 것입니다.path.join('a','b','c')대신.

그러나 이러한 차이에도 불구하고 경로를 정규화하지 않고(예: path.join 사용) 다음과 같은 경로만 작성하면 됩니다.a/b/cnode.js는 Windows에서 스크립트를 실행하는 데 문제가 없습니다.

그래서 글을 쓰는 것보다 더 좋은 점이 있습니까?path.join('a','b','c')위에'a/b/c'둘 다 플랫폼에 상관없이 작동하는 것으로 보입니다.

Windows 파일 시스템은 경로 구분 기호로 정방향 슬래시 또는 역방향 슬래시를 사용하는 데 문제가 없습니다.유일한 실질적인 문제는 Windows 명령줄 프로세서(또는 보다 구체적으로 Windows 네이티브 명령줄 유틸리티)가 경로 구성 요소가 아닌 옵션 지정자로 슬래시를 해석하는 경향이 있다는 것입니다.따라서 하위 프로세스로 실행되는 윈도우즈 명령에 경로를 전달해야 하는 경우 백슬래시 경로가 필요합니다.또한 반환 경로를 반환하는 Windows API 호출(및 Windows API를 호출하는 상위 언어의 메서드)은 백슬래시를 사용하므로 하위 프로세스에 백슬래시를 전달하지 않더라도 이를 정규화해야 합니다.

path.join지정된 경로가 알 수 없는 소스(예: 사용자 입력, 타사 API 등)에서 온 경우 발생할 수 있는 불필요한 구분 기호를 처리합니다.

그렇게path.join('a/','b') path.join('a/','/b'),path.join('a','b')그리고.path.join('a','/b')모두가 기꺼이a/b.

이를 사용하지 않으면 일반적으로 결합된 경로의 시작과 끝에 슬래시가 없거나 하나만 있다는 것을 알고 예상할 수 있습니다.

사용합니다path.join폴더 구분 기호가 올바른 위치에 있는지 확인합니다. 앞으로 또는 뒤로 슬래시를 사용할 필요는 없습니다.예:

path.join("/var/www", "test")

www와 test 사이에 구분자를 올바르게 삽입합니다./var/www/test

단답:

모든.fs.*함수(예: fs.open등)에서 경로 이름을 처리합니다.따라서 사용할 필요가 없습니다.path.join코드를 판독할 수 없게 만듭니다.

긴 답변:

모든.fs.*함수 호출path._makeLong(path)그 다음에는path.resolve(path)백슬래시를 고려한 Windows용 특수 RegExp가 있습니다.\ 슬래시를 으로 이동합니다./다음 사이트에서 소스 코드를 직접 확인할 수 있습니다.

언급URL : https://stackoverflow.com/questions/9756567/do-you-need-to-use-path-join-in-node-js

반응형