ดังนั้น Nodejs มาพร้อมกับตัวแปรโกลบอลเริ่มต้นที่เรียกว่า '__fileName'
ที่เก็บไฟล์ปัจจุบันที่ถูกดำเนินการคำแนะนำของฉันคือการส่ง __fileName ไปยังบริการจากไฟล์ใด ๆ เพื่อให้การดึงชื่อไฟล์เป็นแบบไดนามิก
path.sep
ด้านล่างนี้ฉันจะทำให้การใช้งานของสตริงชื่อไฟล์แล้วแยกบนพื้นฐานของ Note path.sep หลีกเลี่ยงปัญหาเกี่ยวกับตัวคั่นไฟล์ posix และตัวคั่นไฟล์ windows (ปัญหาเกี่ยวกับ '/' และ '\') มันสะอาดกว่ามาก การรับสตริงย่อยและรับเฉพาะชื่อที่แยกล่าสุดและลบออกด้วยความยาว actulal ด้วย 3 พูดสำหรับตัวเอง
คุณสามารถเขียนบริการเช่นนี้ได้ (โปรดทราบว่านี่เป็นตัวพิมพ์ดีด แต่คุณสามารถเขียนได้เป็น 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))