इसलिए Nodejs डिफ़ॉल्ट ग्लोबल वैरिएबल के साथ आता है जिसे कहा जाता है '__fileName'
कि वर्तमान फ़ाइल को निष्पादित किया जा रहा है। मेरी सलाह है कि किसी भी फाइल से सेवा के लिए __fileName पास करें, ताकि फाइलनाम की पुनर्प्राप्ति को गतिशील बनाया जाए
नीचे, मैं फ़ाइलनाम स्ट्रिंग का उपयोग करता हूं और फिर इसके आधार पर विभाजित करता हूं path.sep
। नोट path.sep पॉज़िक्स फ़ाइल सेपरेटर और विंडोज़ फ़ाइल सेपरेटर ('/' और '\' के साथ समस्याएँ) के साथ समस्याओं से बचा जाता है। यह बहुत क्लीनर है। सबस्ट्रिंग प्राप्त करना और केवल अंतिम अलग नाम प्राप्त करना और इसे 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))