Latest web development tutorials

sistema de módulos Node.js

Para hacer archivo Node.js puede llamar a los demás, Node.js proporciona un sistema modular simple.

Módulo es una parte esencial de Node.js aplicaciones, archivos y módulos es uno a uno. En otras palabras, un archivo Node.js es un módulo, este archivo puede ser de código JavaScript, JSON o extensiones compilados en C / C ++.

Cree un módulo

En Node.js, crear un módulo es muy simple, ya que se crea un archivo '' main.js, de la siguiente manera:

var hello = require('./hello');
hello.world();

El ejemplo anterior, el código require ( './ hola') presenta el directorio de archivos hello.js actual (./ directorio actual, Node.js predeterminado sufijo js).

Node.js proporciona exportaciones y requieren dos objetos, donde las exportaciones son las interfaces de módulos abiertos requieren un módulo para la adquisición de la interfaz externa, es decir, el módulo de exportación de adquisición de blancos.

A continuación llegamos a crear el archivo hello.js, de la siguiente manera:

exports.world = function() {
  console.log('Hello World');
}

En el ejemplo anterior, las exportaciones hello.js por el mundo como un módulo de interfaz de acceso a objetos, este módulo en main.js cargado a través de require ( './ hola'), entonces se puede acceder directamente a los miembros hello.js del objeto en las exportaciones la función.

A veces sólo queremos empaquetar un módulo de objeto, el formato es el siguiente:

module.exports = function() {
  // ...
}

Por ejemplo:

//hello.js 
function Hello() { 
	var name; 
	this.setName = function(thyName) { 
		name = thyName; 
	}; 
	this.sayHello = function() { 
		console.log('Hello ' + name); 
	}; 
}; 
module.exports = Hello;

Así se obtiene un objeto directo:

//main.js 
var Hello = require('./hello'); 
hello = new Hello(); 
hello.setName('BYVoid'); 
hello.sayHello(); 

El único cambio es el uso de una interfaz de módulo module.exports = Hola reemplazado exports.world = function () {}. Cuando se hace referencia al módulo exterior, Hola objeto cuyo objeto de interfaz de salida es ser en sí, en lugar de las exportaciones originales.


¿Dónde poner el módulo de servidor

Tal vez usted ha notado que hemos usado en el código del módulo. De esta manera:

var http = require("http");

...

http.createServer(...);

Node.js viene con una característica denominada módulo de "http", preguntamos a devolver el valor de una variable local en nuestro código.

Esto nos pone en una variable local tiene todos los métodos públicos del módulo HTTP proporciona un objeto.

Node.js métodos requieren la estrategia de búsqueda de archivos es la siguiente:

Puesto que hay cuatro módulo de clase (módulo primario y el archivo de tres módulos) Node.js, a pesar de exigir que el método es muy simple, pero por dentro es muy compleja carga, cargar sus prioridades son diferentes. Como se muestra a continuación:

nodejs-requerirá

Cargado desde el módulo de memoria caché de archivos

A pesar del módulo diferentes prioridades módulo nativo y el archivo, pero no va a tener prioridad sobre archivo del módulo de carga que va desde el módulo de memoria caché.

Carga del módulo nativo

prioridad módulo nativo después de que el módulo de memoria caché de archivos prioridad. Después de analizar los métodos requieren el nombre del archivo, de verificación de prioridad si el módulo en una lista módulo nativo. En el módulo HTTP, por ejemplo, aunque hay un archivo http / http.js / http.node / http.json en el directorio, require ( "http") no serán cargados desde el archivo, pero cargado desde el módulo nativo.

módulo nativo también tiene una zona de amortiguación, también se carga preferentemente de la caché. Si el búfer no se carga antes, a continuación, llamar a la carga de módulos nativa se carga y se ejecuta.

La carga del archivo

Cuando el archivo no existe en el módulo de memoria caché, y no un módulo nativo cuando, Node.js requerirá parámetros de entrada método analítico, y cargar el archivo real del sistema de archivos, el proceso de carga de compilar y detalles de empaquetado en la sección anterior se ha introducido, donde vamos a describir en detalle el proceso para encontrar el módulo de archivo, que también tiene algunos detalles para saber más.

requiere método de transferencia acepta los siguientes parámetros:

  • http, fs, ruta, etc., módulo nativo.
  • ./mod o, módulo de archivo de ruta relativa ../mod.
  • / Pathtomodule / mod, la ruta absoluta del módulo de archivo.
  • mod, módulo de archivo de módulo no nativo.