Inicialización del proyecto
El primer objetivo es configurar una página HTML simple que sirva un formulario y una lista de mensajes. Vamos a usar el framework web de Node.JS express para este fin. Asegúrate de que Node.JS esté instalado.
Primero vamos a crear un archivo de manifiesto package.json que describa nuestro proyecto. Te recomiendo que lo coloques en un directorio vacío dedicado (yo llamaré al mío socket-chat-example).
- CommonJS
- ES modules
{
"name":"socket-chat-example",
"version":"0.0.1",
"description":"mi primera app con socket.io",
"type":"commonjs",
"dependencies":{}
}
{
"name":"socket-chat-example",
"version":"0.0.1",
"description":"mi primera app con socket.io",
"type":"module",
"dependencies":{}
}
La propiedad "name" debe ser única, no puedes usar un valor como "socket.io" o "express", porque npm se quejará al instalar la dependencia.
Ahora, para poblar fácilmente la propiedad dependencies con las cosas que necesitamos, usaremos npm install:
npm install express@4
Una vez instalado podemos crear un archivo index.js que configurará nuestra aplicación.
- CommonJS
- ES modules
const express =require('express');
const{ createServer }=require('node:http');
const app =express();
const server =createServer(app);
app.get('/',(req, res)=>{
res.send('<h1>Hola mundo</h1>');
});
server.listen(3000,()=>{
console.log('servidor corriendo en http://localhost:3000');
});
importexpressfrom'express';
import{ createServer }from'node:http';
const app =express();
const server =createServer(app);
app.get('/',(req, res)=>{
res.send('<h1>Hola mundo</h1>');
});
server.listen(3000,()=>{
console.log('servidor corriendo en http://localhost:3000');
});
Esto significa que:
- Express inicializa
apppara ser un manejador de funciones que puedes suministrar a un servidor HTTP (como se ve en la línea 5). - Definimos un manejador de ruta
/que se llama cuando accedemos a la página de inicio de nuestro sitio web. - Hacemos que el servidor http escuche en el puerto 3000.
Si ejecutas node index.js deberías ver lo siguiente:
Y si apuntas tu navegador a http://localhost:3000:
¡Hasta ahora, todo bien!