Su llamada al método require está devolviendo el objeto asignado a module.exports.
Entonces, si tengo un archivo llamado foo.js y en él, tengo este código
//foo.js
module.exports = {
barra: “No sé nodejs”
}
- Una vez que tenga una comprensión básica de Java, ¿debería mejorar mis habilidades de Java desarrollando aplicaciones de Android o aprendiendo Spring servlet para servicios web?
- ¿Por qué el HTML se conoce como lenguaje de marcado?
- ¿Qué proyectos son beneficiosos para un estudiante de CS con el objetivo de obtener una maestría?
- ¿Alguna de las rutas de aprendizaje de Lynda.com para diseñadores web, desarrolladores PHP, desarrolladores front-end y desarrolladores Full Stack es una guía realista a seguir?
- ¿Está mal usar reactjs pero la aplicación no es isomorfa?
y lo requiero en otro archivo como este,
//anotherFile.js
var myNewVar = require (‘foo’);
entonces, myNewVar será un objeto como este
{
barra: “No sé nodejs”
}
Tenga en cuenta que está asignando el objeto y no lo invoca / invoca exactamente. En Javascript, incluso las funciones se tratan como objetos. Entonces, si su module.exports está asignado a una función, está reasignando esa misma función a otro objeto requerido por ella.
En el ejemplo anterior, si mi foo.js tuviera una función como esta,
//foo.js
module.exports = function () {
devolver “Alguna otra cadena”;
}
entonces, requerir foo lo haría equivalente a
myNewVar = function () {
devolver “Alguna otra cadena”;
}
y NO
myNewVar = “Alguna otra cadena”
Entonces, cuando lo haces
aplicación var = connect ();
Indirectamente estás haciendo
aplicación var = require (‘conectar’) (); // El extra () significa que estás llamando a esa función
Lo que significa que está realizando una llamada de función y asignando el valor devuelto al objeto de la aplicación .