2016-11-28 1 views
-2

Je suis confus sur la façon d'importer une fonction dans un fichier appelé util.js qui renverse simplement une chaîneComment importer correctement en utilisant la manière CommonJS

function reverseString(str) { 
    var reversed = " "; 
    for (var i = str.length - 1; i >= 0; i--) { 
     reversed += str[i]; 
    } 
    return reversed; 
} 
module.exports.reverseString = reverseString; 

Je veux accéder que dans un autre fichier , celui-ci appelé server.js

C'est ce que j'ai jusqu'à présent.

var util = require('./util'); 

util.reverseString(); 




var reversed = reverseString(req.body); 
res.send(reversed); 
} else { 
res.status(400).end() 
} 
}); 

J'utilise postier pour vérifier les modules de noeud, mais quand je le lance, je reçois

TypeError: Cannot read property 'length' of undefined 

Je sais le code inverse fonctionne, parce que je l'ai testé plus tôt, donc je suppose que mon importation est Incorrect. Mais toute aide pour trouver ça serait géniale.

Répondre

2

reverseString La fonction attend un argument de type string (peut être également array) et cette même fonction que vous itérez sur l'argument. Mais lors de l'appel de cette fonction, vous ne transmettez aucun paramètre. Par conséquent, l'argument str est défini sur undefined.

undefined n'ont pas de propriété de longueur, de sorte qu'il est thowing cette erreur

1

(Ma réponse est ciblée à ES5. Il y a un peu plus dans sténographies ES6, comme les exportations par défaut et les exportations nommées).

Vous pouvez utiliser une seule exportation:

module.exports = reverseString; 

Puis:

var reverseString = require('./util'); 

reverseString("bobba"); 

//shorthand: 
require('./util')("bobba"); 

Ou retourner un objet d'exportation nommé:

module.exports = { reverseString: reverseString }; 

Puis:

var utils = require('./util'); 
utils.reverseString("bobba"); 

// shorthand: 
require('./util').reverseString("bobba"); 
1

Vous devez référencer la bibliothèque dans laquelle se trouve la fonction depuis que vous avez importé une variable.

var util = require('./util'); 

// util.reverseString(); // this does nothing 

var req = { body: 'some string' }; 
var reversed = util.reverseString(req.body); // ref util here