Red de conocimientos turísticos - Información de alquiler - ¿Por qué hay un () al final de var app = express(); cuando se hace referencia a express?

¿Por qué hay un () al final de var app = express(); cuando se hace referencia a express?

Esto se puede obtener analizando el código fuente:

var express = require('express');

var app = express();

app. get( '/', function (req, res) {

res.send(' ¡Hola mundo!');

});

var servidor = aplicación .listen(3000, función () {

var host = servidor.dirección().dirección;

var puerto = servidor.dirección().puerto; consola.log ('Aplicación de ejemplo escuchando en http://%s:%s', host, puerto);

});

A continuación se analizarán varias API que aparecen en lo anterior. ejemplo:

var app = express();

Abra el directorio node_modules y busque el archivo fuente relevante: ./express/lib/express.js. Este archivo exporta la función createApplication.

express() llama a la función createApplication() y la variable de la aplicación es el valor de retorno de la función createApplication.

El siguiente es el constructor de la función createApplication:

function createApplication() {

// Crear objeto de aplicación

var app = function(req, res, next) {

app.handle(req, res, next

}; del nodo

mixin(app, EventEmitter.prototype, false

//Heredar ./objeto de aplicación

mixin(app, proto, false)

// p>

//app.request y la respuesta heredan de los objetos de solicitud y respuesta locales del nodo

app.request = { __req, app. : aplicación };

app .response = { __proto__: res, aplicación: aplicación }

//Inicializa el objeto de la aplicación

app.init(); ;

return app;

}

El método app.init() es llamado por el método app.init(), que se hereda de ./ aplicación.js.

El siguiente es el método de inicio en application.js:

app.init = function init() {

this.cache = {}

; p >

this.engines = {};

this.settings = { };

this.defaultConfiguration()defaultConfiguration(); ;

Por lo tanto, express() es esencialmente una llamada al método createApplication(), que devolverá un objeto express

Fin del análisis de express().