Vì vậy, Nodejs đi kèm với biến toàn cục mặc định được gọi là '__fileName'
giữ tệp hiện tại đang được thực thi Lời khuyên của tôi là truyền __fileName cho một dịch vụ từ bất kỳ tệp nào, để việc truy xuất tệp Tên được thực hiện động
Dưới đây, tôi sử dụng chuỗi fileName và sau đó phân tách dựa trên path.sep
. Lưu ý path.sep tránh các vấn đề với bộ tách tập tin posix và bộ tách tập tin windows (các vấn đề với '/' và '\'). Nó sạch hơn nhiều. Lấy chuỗi con và chỉ nhận được tên tách biệt cuối cùng và trừ nó với độ dài bằng 3 sẽ nói lên điều đó.
Bạn có thể viết một dịch vụ như thế này (Lưu ý đây là bản in, nhưng bạn rất có thể viết nó trong js)
export class AppLoggingConstants {
constructor(){
}
// Here make sure the fileName param is actually '__fileName'
getDefaultMedata(fileName: string, methodName: string) {
const appName = APP_NAME;
const actualFileName = fileName.substring(fileName.lastIndexOf(path.sep)+1, fileName.length - 3);
//const actualFileName = fileName;
return appName+ ' -- '+actualFileName;
}
}
export const AppLoggingConstantsInstance = new AppLoggingConstants();
path.basename(fpath, path.extname(fpath))