He estado aprendiendo sobre node.js y módulos, y parece que no puedo hacer que la biblioteca Underscore funcione correctamente ... parece que la primera vez que uso una función de Underscore, sobrescribe el objeto _ con el resultado de Mi llamada a la función. Alguien sabe lo que está pasando? Por ejemplo, aquí hay una sesión del nodo.js REPL:
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
Cuando hago archivos Javascript yo mismo y los importo, parece que funcionan correctamente. ¿Tal vez hay algo especial con la biblioteca Underscore?
node.js
module
underscore.js
Geoff
fuente
fuente
_
en REPL.A partir de hoy (30 de abril de 2012) puede usar el subrayado como de costumbre en su código Node.js. Los comentarios anteriores apuntan correctamente a que la interfaz REPL (modo de línea de comando del Nodo) usa la "_" para mantener el último resultado PERO en usted es libre de usarlo en sus archivos de código y funcionará sin problemas haciendo el estándar:
¡Feliz codificación!
fuente
O:
fuente
npm install -g underscore
, quieres decir :)npm install -g
El nombre
_
utilizado pornode.js
REPL para mantener la entrada anterior. Elige otro nombre.fuente
Nota: Lo siguiente solo funciona para la siguiente línea de código, y solo debido a una coincidencia.
Con Lodash
No,
var _ = require('lodash')
ya que Lodash establece misteriosamente este valor a nivel mundial cuando es necesario.fuente
_
. El resultado de su última declaración fue la lodash lib. Entonces_.isArray([])
trabajará en la siguiente línea , pero nunca más.