2017-08-24 5 views
0

Je génère des fichiers .js à l'aide d'un modèle spécifique. Les chemins d'accès aux modules à requérir sont transmis en tant que paramètres au modèle. Avant de les transmettre au modèle, les chemins sont créés à l'aide de path.join.Utilisation de path.join dans Node.js pour exiger un module spécifique

example: 
var path = path.join(process.cwd(), 'location/to/module'); 
template(path); 

in the template file: 
var result = '/'use strict/';' 
    result += 'var testcase = require(' + path + ')'; 

Lorsque le fichier est généré le chemin besoin à l'intérieur se présente comme suit:

require('D:\rootdirectory\directory\deleteCookies.test.js'); 

Les anti-slash dans le chemin sont à l'origine des problèmes.

Quelqu'un peut-il m'aider, merci!

+0

Utilisez-vous Linux ou Windows, car il semble ok pour Windows? –

Répondre

0

Résolu ce problème en échappant aux barres obliques inverses à l'aide du module jsesc.

var jsesc = require('jsesc'); 

result += 'var testcase = require(' + jsesc(path) + ')'; 

La sortie:

require('D:\\rootdirectory\\directory\\deleteCookies.test.js');