2016-11-28 7 views
-2

Ich bin verwirrt, wie eine Funktion in einer Datei util.js, die einfach umkehrt eine ZeichenfolgeWie man richtig importiert die Commonjs Weise mit

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

Ich mag, dass in einer anderen Datei mit dem Namen importieren zugreifen , dieser eine rief server.js

Das ist, was ich bisher habe.

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

util.reverseString(); 




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

ich Postbote bin mit dem Knotenmodule zu überprüfen, aber wenn ich es benutze ich

TypeError: Cannot read property 'length' of undefined 

Ich weiß, der Reverse-Code funktioniert, weil ich es früher getestet, so nehme ich an meinem Import falsch. Aber jede Hilfe, die das herausfinden würde, wäre großartig.

Antwort

2

reverseString Funktion erwartet ein Argument vom Typ string (kann auch Array sein) und dieselbe Funktion, die Sie über das Argument iterieren.

Aber während Sie diese Funktion aufrufen, übergeben Sie keinen Parameter, daher wird das Argument str auf undefiniert gesetzt.

undefined keine Länge Eigenschaft haben, so dass er diesen Fehler thowing

1

(Meine Antwort auf ES5 ausgerichtet ist. Es gibt einige weitere Kürzeln in ES6, wie Standard-Exporte und benannte Exporte).

können Sie einen einzigen Export verwenden:

module.exports = reverseString; 

Dann:

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

reverseString("bobba"); 

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

Oder ein Objekt namens Exporte zurück:

module.exports = { reverseString: reverseString }; 

Dann:

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

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

Sie müssen auf die Bibliothek verweisen, in der sich die Funktion befindet, seit Sie in eine Variable importiert haben.

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

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

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