J'ai appris à propos de node.js et des modules, et je n'arrive pas à faire fonctionner correctement la bibliothèque Underscore ... il semble que la première fois que j'utilise une fonction de Underscore, elle écrase l'objet _ avec le résultat de mon appel de fonction. Quelqu'un sait ce qui se passe? Par exemple, voici une session du REPL 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
Lorsque je crée moi-même des fichiers Javascript et que je les importe, ils semblent fonctionner correctement. Peut-être qu'il y a quelque chose de spécial avec la bibliothèque Underscore?
la source
_
dans le REPL.À partir d'aujourd'hui (30 avril 2012), vous pouvez utiliser Underscore comme d'habitude sur votre code Node.js. Les commentaires précédents indiquent à droite que l'interface REPL (mode de ligne de commande de Node) utilise le "_" pour contenir le dernier résultat MAIS si vous êtes libre de l'utiliser sur vos fichiers de code et cela fonctionnera sans problème en faisant le standard:
Bon codage!
la source
Ou :
la source
npm install -g underscore
, vous voulez dire :)npm install -g
Le nom
_
utilisé par lenode.js
REPL pour contenir l'entrée précédente. Choisissez un autre nom.la source
Remarque: ce qui suit ne fonctionne que pour la ligne de code suivante, et uniquement en raison d'une coïncidence.
Avec Lodash,
Non,
var _ = require('lodash')
car Lodash définit mystérieusement cette valeur globalement lorsque cela est nécessaire.la source
_
. Le résultat de votre dernière déclaration a été le lodash lib. Cela_.isArray([])
fonctionnera donc sur la ligne suivante , mais plus jamais.