বর্তমান ফাইলের নাম, ফাংশনের নাম এবং লাইন নম্বর কীভাবে পাবেন?
আমি / লগিং জন্য এটি ব্যবহার করতে উদ্দেশ্য, সমতুল্য করার ডিবাগ চান __FILE__, __LINE__ গ
বর্তমান ফাইলের নাম, ফাংশনের নাম এবং লাইন নম্বর কীভাবে পাবেন?
আমি / লগিং জন্য এটি ব্যবহার করতে উদ্দেশ্য, সমতুল্য করার ডিবাগ চান __FILE__, __LINE__ গ
উত্তর:
নোড.জেএস এটি করার জন্য একটি স্ট্যান্ডার্ড এপিআই সরবরাহ করে: পথ ।
বর্তমান স্ক্রিপ্টটির নাম পাওয়া তখন সহজ:
var path = require('path');
var scriptName = path.basename(__filename);
script.js, আপনি পাবেন script.js। আপনি যদি কেবলমাত্র এক্সটেনশন ছাড়াই নাম রাখতে চান, যেহেতু আমরা এখানে যে jsস্ক্রিপ্টটি আপনি ব্যবহার করতে পারেন তার কথা বলছি var scriptName = path.basename(__filename, '.js');বাvar scriptName = path.basename(__filename, path.extname(__filename))
path.parse(__filename).name
__filenameএকটি ES6 মডিউল মধ্যে সংজ্ঞায়িত করা হয় না।
CommonJSভেরিয়েবলগুলি ইএস মডিউলগুলিতে উপলভ্য নয়। এর সমতুল্য __filenameএবং __dirnameপ্রতিটি ফাইলের মধ্যে দিয়ে তৈরি করা যেতে পারে import.meta.url।
মডিউলটির মধ্যে আপনি ফাইলের নাম সহ পুরো পথ পেতে নিম্নলিখিতগুলির যে কোনও একটি করতে পারেন
this.filename;
module.filename;
__filename;
আপনি যদি কোনও পথ বা প্রসার ছাড়াই প্রকৃত নামটি চান তবে আপনি এই জাতীয় কিছু করতে পারেন।
module.filename.slice(__filename.lastIndexOf(path.sep)+1, module.filename.length -3);
var path = require('path');module.filename.slice(__filename.lastIndexOf(require('path').sep)+1, module.filename.length -3);
path.basename(module.filename, path.extname(module.filename))
শুধুমাত্র ফাইলের নাম পেতে। কেবল কোনও অতিরিক্ত মডিউল নেই:
// 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পরিবর্তে আপনার ব্যবহার করা উচিত (প্রথম নোড.জেএস v0.1.25 তে নথিভুক্ত ), কারণ এটি কোণার সমস্ত ক্ষেত্রে পরিচালনা করে যা আপনি ভিতরে স্ল্যাশযুক্ত ফাইলের নামগুলি (যেমন ইউনিক্সে "foo \ বার" নামক ফাইল) জানতে চান না hand উপরেpath উত্তর দেখুন ।
javascript splitএবং চলছে।
আপনি কনসোল-প্লাসটিও দেখতে পারেন । এটি কোনও লগিং পাঠ্যে ফাইলের নাম এবং লিনেনবার যুক্ত করে এবং .log, .info এবং .error এর জন্য বিভিন্ন বর্ণ ধারণ করে।
আমি জানি এটি ইতিমধ্যে অনেক দিন হয়ে গেছে তবে আমি যা করেছি তা হ'ল __filename.split('\\').pop()। এটি ফাইলের নাম সহ পুরো পাথ পাবে, এটিকে ভাগ করে নিন এবং \তারপরে সর্বশেষ সূচকটি পাবেন যা আপনার ফাইলের নাম হবে।
__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(/^.*[\\\/]/, '');
}
আপনি যদি নোডেজ ব্যবহার করেন তবে আপনি এই প্যাকেজটি ইনস্টল করতে পারেন যা এই ফাংশনটি অন্তর্ভুক্ত করে https://www.npmjs.com/package/jotils