Node.js-현재 파일 이름 가져 오기
현재 파일 이름, 함수 이름 및 줄 번호를 얻는 방법은 무엇입니까?
나는 목적, 해당에 디버깅 / 로깅을 사용하려면 __FILE__
, __LINE__
C에
Node.js는이를위한 표준 API를 제공합니다 : Path .
현재 스크립트의 이름을 얻는 것은 쉽습니다.
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
대신 슬래시가있는 파일 이름 (예 : 유닉스에서 "foo \ bar"라는 이름의 파일)과 같이 알고 싶지 않은 모든 코너 케이스를 처리하기 때문에 대신 사용해야 합니다 ( Node.js v0.1.25에 처음 문서화 됨 ). 위의path
답변을 참조하십시오 .
console-plus를 볼 수도 있습니다 . 이렇게하면 로깅 텍스트에 파일 이름과 줄 번호가 추가되고 .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 이 기능이 포함 된 패키지를 설치할 수 있습니다.
참고 URL : https://stackoverflow.com/questions/14201475/node-js-getting-current-filename
'developer tip' 카테고리의 다른 글
Xcode에서 회색으로 표시된 아카이브 버튼 (0) | 2020.08.17 |
---|---|
Windows 7에서 WAMP 및 Skype 충돌을 해결하는 방법은 무엇입니까? (0) | 2020.08.17 |
System.Net.HttpClient를 사용하여 복잡한 형식을 게시하는 방법은 무엇입니까? (0) | 2020.08.17 |
Mac OS X-EnvironmentError : mysql_config not found (0) | 2020.08.17 |
선언적으로 사용 가능한 화면 너비의 절반에 너비 할당 (0) | 2020.08.17 |