2017-06-11 1 views
0

J'ai 2 fichiersNode.js connaître le fichier où require est arrivé

// file1.js 
//some js code that will do what I ask in the question 
module.exports = myFunc 

//file2.js 
require('./file1') 

Est-il possible, en toute sorte de façon, pour file1.js de savoir qui il nécessaire? alors quand file2 nécessite file1, file1 saura qu'il s'agit de file2?

+0

Pourquoi le feriez-vous? Que faire si deux modules en ont besoin? –

+0

mon js-fu est faible, mais je voudrais que file1 crée un fichier avec le nom qui contient le fichier 2 –

+0

Si vous voulez cela pour le débogage, regardez 'new Error(). Stack'. Si vous voulez cela pour la logique, ne pas ajouter une couche d'abstraction afin que vous puissiez l'invoquer différemment en premier lieu. –

Répondre

2

Vous avez noté que vous souhaitiez utiliser la fonctionnalité file1 pour créer un fichier portant le même nom que les appelants. Vous pouvez le faire en utilisant la variable __filename dans un module.

Plutôt que d'essayer d'accéder à l'appelant, il suffit de passer cette variable lors de l'utilisation file1. Par exemple:

require('./file1')(__filename) 

file1 a quelque chose comme:

module.exports = filename => { 
    // create file here 
} 

Bien que cela devrait résoudre votre problème, il semble comme une exigence étrange, et il y a probablement une meilleure façon d'obtenir ce que vous êtes vraiment après.