Ich habe etwas über node.js und Module gelernt und kann anscheinend nicht dazu führen, dass die Underscore-Bibliothek ordnungsgemäß funktioniert. Wenn ich zum ersten Mal eine Funktion von Underscore verwende, überschreibt sie das _ -Objekt mit dem Ergebnis von mein Funktionsaufruf. Weiß jemand was los ist? Hier ist zum Beispiel eine Sitzung aus der REPL von node.js:
Admin-MacBook-Pro:test admin$ node
> require("./underscore-min")
{ [Function]
_: [Circular],
VERSION: '1.1.4',
forEach: [Function],
each: [Function],
map: [Function],
inject: [Function],
(...more functions...)
templateSettings: { evaluate: /<%([\s\S]+?)%>/g, interpolate: /<%=([\s\S]+?)%>/g },
template: [Function] }
> _.max([1,2,3])
3
> _.max([4,5,6])
TypeError: Object 3 has no method 'max'
at [object Context]:1:3
at Interface.<anonymous> (repl.js:171:22)
at Interface.emit (events.js:64:17)
at Interface._onLine (readline.js:153:10)
at Interface._line (readline.js:408:8)
at Interface._ttyWrite (readline.js:585:14)
at ReadStream.<anonymous> (readline.js:73:12)
at ReadStream.emit (events.js:81:20)
at ReadStream._emitKey (tty_posix.js:307:10)
at ReadStream.onData (tty_posix.js:70:12)
> _
3
Wenn ich selbst Javascript-Dateien erstelle und importiere, scheinen sie ordnungsgemäß zu funktionieren. Vielleicht hat die Underscore-Bibliothek etwas Besonderes?
quelle
_
in der REPL.Ab heute (30. April 2012) können Sie Underscore wie gewohnt für Ihren Node.js-Code verwenden. Frühere Kommentare weisen zu Recht darauf hin, dass die REPL-Schnittstelle (Node's Command Line Mode) das "_" verwendet, um das letzte Ergebnis zu speichern, ABER Sie können es in Ihren Codedateien verwenden und es funktioniert problemlos, indem Sie den Standard ausführen:
Viel Spaß beim Codieren!
quelle
Oder :
quelle
npm install -g underscore
, du meinst :)npm install -g
Der Name,
_
der von dernode.js
REPL verwendet wird, um die vorherige Eingabe zu speichern. Wählen Sie einen anderen Namen.quelle
Hinweis: Das Folgende funktioniert nur für die nächste Codezeile und nur aufgrund eines Zufalls.
Mit Lodash,
Nein,
var _ = require('lodash')
da Lodash diesen Wert bei Bedarf auf mysteriöse Weise global festlegt.quelle
_
. Das Ergebnis Ihrer letzten Aussage war die lodash lib. Also_.isArray([])
wird in der nächsten Zeile gearbeitet , aber nie wieder.