Node.js - 현재 파일 이름 가져오기
현재 파일 이름, 함수 이름 및 라인 번호를 가져오는 방법은 무엇입니까?
로그/디버깅 목적으로 사용하고 싶습니다.__FILE__
,__LINE__
주식회사
Node.js는 이를 위한 표준 API인 경로를 제공합니다.
그러면 현재 스크립트의 이름을 쉽게 얻을 수 있습니다.
var path = require('path');
var scriptName = path.basename(__filename);
모듈 내에서 다음 중 하나를 수행하여 파일 이름으로 전체 경로를 가져올 수 있습니다.
this.filename;
module.filename;
__filename;
경로나 확장자가 없는 실제 이름을 원할 경우 다음과 같은 작업을 수행할 수 있습니다.
module.filename.slice(__filename.lastIndexOf(path.sep)+1, module.filename.length -3);
파일 이름만 가져옵니다.단순히 추가 모듈 없음:
// abc.js
console.log(__filename.slice(__dirname.length + 1));
// abc
console.log(__filename.slice(__dirname.length + 1, -3));
'use strict';
const scriptName = __filename.split(/[\\/]/).pop();
설명.
console.log(__filename);
// 'F:\__Storage__\Workspace\StackOverflow\yourScript.js'
const parts = __filename.split(/[\\/]/);
console.log(parts);
/*
* [ 'F:',
* '__Storage__',
* 'Workspace',
* 'StackOverflow',
* 'yourScript.js' ]
*
**/
여기서는 정규식이 있는 분할 함수를 첫 번째 매개 변수로 사용합니다.
분리기에 대해 원하는 정규식은 다음과 같습니다.[\/]
(에 의해 표시됨)/
또는\
) 그러나/
정규식 종료자와 구별하려면 기호를 이스케이프해야 합니다./
,그렇게/[\\/]/
.
const scriptName = __filename.split(/[\\/]/).pop(); // Remove the last array element
console.log(scriptName);
// 'yourScript.js'
사용 안 함
당신은 정말로 사용해야 합니다.path.basename
대신 (Node.js v0.1.25에서 처음 문서화됨) 슬래시가 있는 파일 이름과 같이 알고 싶지 않은 모든 코너 케이스를 처리하기 때문입니다(예: 유닉스에서 "foo\bar"라는 이름의 파일). 참조path
상기의 회답
콘솔 플러스도 볼 수 있습니다.이렇게 하면 로깅 텍스트에 파일 이름과 라인 번호가 추가되고 .log, .info 및 .error에 대한 색상이 다릅니다.
파일 이름을 로거의 태그로 사용하고 싶었기 때문에 가장 직접적으로 원하는 것은 다음과 같습니다.
__filename.substring(__dirname.length + 1, __filename.lastIndexOf("."))
이미 오래전 일이지만, 제가 한 일은__filename.split('\\').pop()
이렇게 하면 파일 이름이 포함된 전체 경로를 얻을 수 있습니다.\
그런 다음 파일 이름이 될 마지막 인덱스를 가져옵니다.
이 함수를 사용하여 파일 이름을 가져올 수 있습니다.
/**
* @description
* get file name from path
* @param {string} path path to get file name
* @returns {string} file name
* @example
* getFileName('getFileName/index.js') // => index.js
*/
export default function getFileName(path) {
return path.replace(/^.*[\\\/]/, '');
}
nodejs를 사용하는 경우 이 기능이 포함된 패키지를 설치할 수 있습니다. https://www.npmjs.com/package/jotils
여기에 나열되지 않았기 때문에 다른 옵션은 다음을 제거하는 것입니다.__dirname
에서__filename
.
__filename.replace(`${__dirname}/`, '')
저는 당신이 수입을 원하지 않는다면 그것이 유용하다고 생각합니다.path
모듈.하지만, 저는 믿습니다.path.basename(__filename)
가 가장 적합합니다.
언급URL : https://stackoverflow.com/questions/14201475/node-js-getting-current-filename
'programing' 카테고리의 다른 글
node.js, mysql, 날짜 및 시간 오프셋 (0) | 2023.07.24 |
---|---|
Powershell: 존재하지 않을 수 있는 경로를 확인하시겠습니까? (0) | 2023.07.24 |
wkhtmltopdf Docker 이미지 설치 및 실행 방법 (0) | 2023.07.24 |
영숫자가 아닌 모든 문자, 새 줄 및 여러 공백을 하나의 공백으로 바꾸기 (0) | 2023.07.24 |
Angular2 코드의 TypeScript 오류: 'module' 이름을 찾을 수 없습니다. (0) | 2023.07.24 |