No creo que entiendo bien cómo funciona exports
en Node.js. En un poco de código de ejemplo, he notado el objeto exports
utiliza de esta manera:Comprensión de las exportaciones en NodeJS
exports = mongoose = require('mongoose')
mongoose.connect(config.db.uri)
exports = Schema = mongoose.Schema
Lo que está sucediendo detrás de las escenas cuando se utiliza exports =
el doble de esa manera? Me parece que "mangosta" no debería exportarse. Hice esta prueba rápida:
var foo
, bar
exports = foo = 'foo'
exports = bar = 'bar'
// reports 'bar' only
console.log(exports)
y la segunda prueba sobrescribe la primera exportación.
Sí, eso es extraño. Generalmente, esperarías un 'exports.foo = 'foo'' etc. –
Es posible que el mangosta.Schema apunte a la mangosta. –
Estoy tratando de resolver esto por mí mismo, y lo mejor que puedo decir, las 3 líneas no hacen nada. Al establecer el objeto de exportación, el objeto de exportación global se pierde. Por lo tanto, no se exporta nada de este archivo. La otra cosa clave es que esas variables (mangosta y esquema) se están definiendo al objeto global. Esto parece una forma de indicar que estas variables van a ser globales y este archivo no las exporta a través de la interfaz del módulo. No puedo ver ninguna otra razón para hacer esto. – sujal