175 votes

Node.js - obtenir le nom de fichier actuel

Comment obtenir le nom du fichier actuel, le nom de la fonction et le numéro de ligne?

Je veux l'utiliser à des fins de journalisation/débogage, équivalent à __FILE__, __LINE__ en c

3 votes

1 votes

Je vois que personne n'a jamais trouvé de bonne réponse pour le nom de la fonction ou le numéro de ligne.

1voto

Marcus Points 57

Je sais que cela fait déjà un certain temps, mais ce que j'ai fait est __nomfichier.split('\\').pop(). Cela permet d'obtenir le chemin complet avec le nom du fichier, de le diviser par \ puis d'obtenir le dernier index qui sera votre nom de fichier.

2 votes

Sur macOS __filename.split('/').pop()

4 votes

Sur n'importe quel système require('chemin').basename(__filename)

1voto

Josh Points 513

Vous pouvez utiliser cette fonction pour obtenir le nom du fichier :

/**
 * @description 
 * obtenir le nom du fichier à partir du chemin
 * @param {string} chemin chemin pour obtenir le nom du fichier
 * @returns {string} nom du fichier
 * @example 
 * getFileName('getFileName/index.js') // => index.js
 */
export default function getFileName(chemin) {
    return chemin.replace(/^.*[\\\/]/, '');
}

si vous utilisez nodejs, vous pouvez installer le package qui inclut cette fonction https://www.npmjs.com/package/jotils

1voto

Roi Points 536

Juste parce que je ne le vois pas répertorié ici, une autre option consiste simplement à supprimer le __dirname du __filename.

__filename.replace(`${__dirname}/`, '')

Je pense que c'est utile si vous ne voulez pas importer le module path. Cependant, je crois que path.basename(__filename) est le plus approprié.

1voto

TacB0sS Points 2164

Eh bien, je voulais utiliser le nom de fichier comme balise pour le journalisateur donc la façon la plus simple et ce que je voulais est ceci :

__filename.substring(__dirname.length + 1, __filename.lastIndexOf("."))

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X