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”
}
- ¿Cuál es la mejor herramienta para administrar una base de datos MySQL de manera flexible?
- Cómo escribir texto en HTML en líneas separadas
- ¿Es mejor proporcionar toda la página a la vez o devolverla en partes?
- Facilidad de uso: ¿con qué frecuencia las personas realmente conocen su ZIP + 4 para las entradas de formulario?
- ¿Qué es un buen sistema de intranet para una organización sin fines de lucro?
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 .