Aquí, aprenderá a exponer diferentes tipos como un módulo usando module.exportación.
El module.exports
es un objeto especial que se incluye en cada archivo JavaScript en el Nodo.aplicación js por defecto. El module
es una variable que representa el módulo actual, y exports
es un objeto que se expondrá como un módulo. Por lo tanto, lo que asigne a module.exports
se expondrá como un módulo.,
veamos cómo exponer diferentes tipos como un módulo usando module.exports
.
exportar literales
como se mencionó anteriormente, exports
es un objeto. Así que expone lo que se le asignó como un módulo. Por ejemplo, si asigna un literal de cadena, expondrá ese literal de cadena como un módulo.
el siguiente ejemplo expone un mensaje de cadena simple como un módulo en Message.js.
Copiar
module.exports = 'Hello world';
Ahora, la importación de este mensaje y módulo de uso como se muestra a continuación.
Copiar
var msg = require('./Messages.js');console.log(msg);
Ejecutar el ejemplo anterior y ver el resultado, como se muestra a continuación.
C:\> aplicación de nodo.JS
Hello World
./
como una ruta de la carpeta raíz para importar un módulo local. Sin embargo, no es necesario especificar la ruta de acceso al nodo de importación.,módulos JS core O módulos NPM en la función require()
.Export Object
el exports
es un objeto. Por lo tanto, puede adjuntar propiedades o métodos a ella. El siguiente ejemplo expone un objeto con una propiedad string en el archivoMessage.js
.
Copiar
exports.SimpleMessage = 'Hello world';//ormodule.exports.SimpleMessage = 'Hello world';
En el ejemplo anterior, hemos adjuntado una propiedad SimpleMessage
a la de las exportaciones objeto. Ahora, importa y usa este módulo, como se muestra a continuación.
Copiar
var msg = require('./Messages.js');console.log(msg.SimpleMessage);
En el ejemplo anterior, el require()
función devolverá un objeto { SimpleMessage : 'Hello World'}
y asignarlo a la variable msg. Por lo tanto, ahora puede usar msg.SimpleMessage
.
ejecute el ejemplo anterior escribiendo node app.js
en el símbolo del sistema y vea la salida como se muestra a continuación.
C:\> aplicación de nodo.JS
Hello World
de la misma manera que anteriormente, puede exponer un objeto con función., El siguiente ejemplo expone un objeto con la función log
como módulo.
Copiar
module.exports.log = function (msg) { console.log(msg);};
El anterior módulo se expone un objeto- { log : function(msg){ console.log(msg); } }
. Utilice el módulo anterior como se muestra a continuación.
Copiar
var msg = require('./Log.js');msg.log('Hello World');
Ejecutar y ver el resultado en la línea de comandos como se muestra a continuación.
C:\> aplicación de nodo.,JS
Hello World
También puede adjuntar un objeto a module.exports
, como se muestra a continuación.
Copiar
module.exports = { firstName: 'James', lastName: 'Bond'}
Copiar
var person = require('./data.js');console.log(person.firstName + ' ' + person.lastName);
Ejecutar el ejemplo anterior y ver el resultado, como se muestra a continuación.
C:\> aplicación de nodo.JS
James Bond
Export Function
Puede adjuntar una función anónima al objeto exports como se muestra a continuación.,
Copiar
module.exports = function (msg) { console.log(msg);};
Ahora, usted puede utilizar el módulo, como se muestra a continuación.
Copiar
var msg = require('./Log.js');msg('Hello World');
El msg
variable se convierte en una expresión de función en el ejemplo anterior. Por lo tanto, puede invocar la función usando paréntesis ()
. Ejecute el ejemplo anterior y vea la salida como se muestra a continuación.
C:\> aplicación de nodo.,JS
Hello World
exportar función como clase
en JavaScript, una función puede tratarse como una clase. El siguiente ejemplo expone una función que se puede usar como una clase.
el módulo anterior se puede utilizar, como se muestra a continuación.
Copiar
var person = require('./Person.js');var person1 = new person('James', 'Bond');console.log(person1.fullName());
Como puede ver, hemos creado un person
objeto utilizando la etiqueta new
palabra clave. Ejecute el ejemplo anterior, como se muestra a continuación.
C:\> aplicación de nodo.,JS
James Bond
de esta manera, puede exportar e importar un módulo local creado en un archivo separado en la carpeta raíz. nodo
.js también le permite crear módulos en subcarpetas. Veamos cómo cargar el módulo desde subcarpetas.
cargar módulo desde la carpeta separada
utilice la ruta completa de un archivo de módulo donde lo ha exportado utilizandomodule.exports
. Por ejemplo, si el módulo de registro en el registro.js se almacena en la carpeta utility
en la carpeta raíz de su aplicación, luego impórtela, como se muestra a continuación.
Copiar
var log = require('./utility/log.js');
En el ejemplo anterior, .
está en la raíz de la carpeta y, a continuación, especifique la ruta de acceso exacta de su archivo de módulo. Nodo.js también nos permite especificar la ruta a la carpeta sin especificar el nombre del archivo. Por ejemplo, puede especificar solo la carpeta utility sin especificar log.js
, como se muestra a continuación.
Copiar
var log = require('./utility');
En el ejemplo anterior, el Nodo.,js buscará un archivo de definición de paquete llamado package.json
dentro de la carpeta utility. Esto se debe a que Node asume que esta carpeta es un paquete y tratará de buscar una definición de paquete.El archivo package.json
debe estar en un directorio de módulo. El package.json
en la carpeta utility especifica el nombre del archivo usando la clave main
, como se muestra a continuación.
Copiar
{ "name" : "log", "main" : "./log.js"}
Ahora, el Nodo.,js encontrará el archivo log.js
usando la entrada main
En package.json
e importarlo.
package.json
no existe, entonces buscará index.archivo js como archivo de módulo por defecto.