Módulo Web de Node.js


¿Qué es un servidor web?

Un servidor web generalmente se refiere a un servidor de sitio web, que es un programa que reside en algún tipo de computadora en Internet. La función básica de un servidor web es proporcionar servicios de navegación de información web. Solo necesita soportar el protocolo HTTP, el formato de documentos HTML y las URL, y cooperar con el navegador web del cliente.

La mayoría de los servidores web admiten lenguajes de script del lado del servidor (php, python, ruby), etc., y a través de estos lenguajes de script obtienen datos de la base de datos y devuelven los resultados al navegador del cliente.

Actualmente, los tres servidores web más populares son Apache, Nginx e IIS.


Arquitectura de aplicaciones web

  • Client- Cliente, generalmente se refiere al navegador; el navegador puede solicitar datos al servidor mediante el protocolo HTTP.

  • Server- Servidor, generalmente se refiere al servidor web, que puede recibir solicitudes del cliente y enviar datos de respuesta al cliente.

  • Business- Capa de negocio: procesa aplicaciones a través del servidor web, como interactuar con bases de datos, realizar operaciones lógicas, llamar programas externos, etc.

  • Data- Capa de datos: generalmente compuesta por bases de datos.


Crear un servidor web con Node

Node.js proporciona el módulo http, que se utiliza principalmente para construir servidores y clientes HTTP. Para usar las funciones de servidor o cliente HTTP, se debe invocar el módulo http. El código es el siguiente:

var http = require('http');

Lo siguiente demuestra una arquitectura básica de servidor HTTP (usando el puerto 8080). Cree un archivo server.js. El código es el siguiente:

Ejemplo

var http = require('http'); var fs = require('fs'); var url = require('url'); //Crear servidor http.createServer( function (request, response) { //Analizar la solicitud, incluido el nombre del archivo var pathname = url.parse(request.url).pathname; //Generar el nombre del archivo solicitado console.log("Request for " + pathname + " received."); //Leer el contenido del archivo solicitado desde el sistema de archivos fs.readFile(pathname.substr(1), function (err, data) { if (err) { console.log(err); //Código de estado HTTP: 404: NOT FOUND // Content Type: text/html response.writeHead(404, {'Content-Type': 'text/html'}); }else{ //Código de estado HTTP: 200: OK // Content Type: text/html response.writeHead(200, {'Content-Type': 'text/html'}); //Responder con el contenido del archivo response.write(data.toString()); } //Enviar datos de respuesta response.end(); }); }).listen(8080); //La consola mostrará la siguiente información console.log('Server running at http://127.0.0.1:8080/');

A continuación, creamos un archivo index.html en ese directorio. El código es el siguiente:

Archivo index.html

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Tutorial de Ejemplo (example.com)</title> </head> <body> <h1>Mi primer título</h1> <p>Mi primer párrafo.</p> </body> </html>

Ejecute el archivo server.js:

$ node server.js
Server running at http://127.0.0.1:8080/

Luego abrimos la dirección en el navegador:http://127.0.0.1:8080/index.html, se muestra como se ve a continuación:

La información de salida de la consola al ejecutar server.js es la siguiente:

Server running at http://127.0.0.1:8080/
Request for /index.html received.     #  客户端请求信息

Crear un cliente web con Node

Node, para crear un cliente web, necesita importar el módulo http. Cree un archivo client.js. El código es el siguiente:

Ejemplo

var http = require('http'); //Opciones para la solicitud var options = { host: 'localhost', port: '8080', path: '/index.html' }; //Función de devolución de llamada para manejar la respuesta var callback = function(response){ //Actualizar datos continuamente var body = ''; response.on('data', function(data) { body += data; }); response.on('end', function() { //Recepción de datos completada console.log(body); }); } //Enviar solicitud al servidor var req = http.request(options, callback); req.end();

Abrir una nueva terminal, ejecute el archivo client.js. El resultado es el siguiente:

$ node  client.js 
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Ejemplo(example.com)</title>
</head>
<body>
    <h1>我的第一个标题</h1>
    <p>我的第一个段落。</p>
</body>
</html>

La información de salida de la consola al ejecutar server.js es la siguiente:

Server running at http://127.0.0.1:8080/
Request for /index.html received.   # 客户端请求信息
Otras extensiones