¿Cómo instalar y configurar nuestro primer servidor Express?
Instalar y configurar un servidor Express no solo es un rito de iniciación esencial para todo desarrollador de backend, sino que es una habilidad fundamental que expande las capacidades para construir aplicaciones con Node.js. Comencemos por detallar los pasos necesarios para llevar a cabo esta importante tarea tecnológica.
¿Cómo instalar Express como dependencia de producción?
La instalación de Express como dependencia de producción se hace mediante npm (Node Package Manager). Esta dependencia es crucial porque será parte del entorno principal de nuestra aplicación, en contraste con las dependencias de desarrollo que solo se usan durante la fase de desarrollo.
Para instalar Express, abre tu terminal y ejecuta el siguiente comando:
npminstall express
O si prefieres la forma abreviada:
npm i express
Posterior a la instalación, verifica que Express ha sido añadido a tu lista de dependencias de producción, probablemente con la versión 4.17, que es estable y comúnmente utilizada.
¿Cómo crear la aplicación y definir el puerto en Express?
Tras haber instalado Express, el siguiente paso es crear nuestro servidor básico. Vamos a requerir Express y establecer nuestra aplicación.
Requirir Express:
Inicia un archivo llamado index.js y añade el siguiente código para requerir Express:
const express =require('express');
Crear la aplicación:
Utiliza express() para inicializar la app.
const app =express();
Configurar el puerto:
Para definir en qué puerto escuchará nuestra aplicación, podrías seleccionar uno usual como el 3000. Configura el puerto de la siguiente forma:
const port =3000;
¿Cómo definir rutas y configurar el callback de respuesta?
Definir rutas en Express es otro paso crucial. Aquí hay cómo puedes añadir una ruta básica que devuelva un mensaje simple.
Definir una ruta:
Implementa la ruta raíz utilizando app.get().
app.get('/',(req, res)=>{ res.send('Hola mi server en Express');});
Escuchar en el puerto configurado:
Para hacer que la aplicación escuche en el puerto definido, utiliza app.listen().
Es esencial recordar que console.log aparece como una alerta si estás usando ESLint debido a que no es una práctica recomendada en producción.
¿Cómo ejecutar la aplicación en el servidor?
Con la aplicación y configuración listas, ejecutemos la aplicación.
Ejecutar en modo desarrollo:
Se puede usar nodemon para ejecutar la aplicación en modo desarrollo. Este comando inicia tu aplicación y se mantiene vigilante a cambios en el código:
nodemon index.js
Después de estos pasos, abre tu navegador preferido e ingresa a localhost:3000. Deberías ver el mensaje "Hola mi server en Express".
Esta demostración te sitúa directamente en el epicentro del desarrollo backend con Express. Experimenta cambiando el puerto y revisa la documentación oficial para ampliar tu conocimiento. ¿Te atreves a profundizar más en el fascinante mundo de Express?
Instalación de Express.js y tu primer servidor HTTP
Instalación de Express.js y tu primer servidor HTTP
Me gusta que el profe explica el paso a paso, es muy claro y con las bases del curso de fundamentos vamos super bien :D:
Código:
const express =require("express");const app =express();const port =3000;app.get("/",(req, res)=>{ res.send("Hola mi server en Express");});app.listen(port,()=>{console.log("My port: "+ port);});
ya estas listo para hacer un deploy de tus proyectos estáticos y hacer que node corra con tus archivos usando path, te enseño como en uno de los aportes de esta clase
ya estas listo para hacer un deploy de tus proyectos estáticos haciendo que node corra con tus archivos usando path, te enseño como en uno de los aportes de esta clase
dejo mi código comentado por si le sirve a alguien:
// traemos a expressconst express =require("express");// creamos una aplicaciónconst app =express();//le decimos el puerto en que queremos que corra la aplicaciónconst port =3000;//definimos la ruta// tiene un callback que va a ejecutar la respuesta que enviemos al cliente.//el callback siempre tiene dos parámetros "req" y "res".app.get("/",(req, res)=>{ res.send("hola mi server en express");});//le decimos a la aplicación en que puesto escuchar// además creamos un callback que nos avisará cuando esté corriendoapp.listen(port,()=>{console.log("mi port"+ port);});
belleza, si nos sirve, pero que tal si queremos mandar a imprimir un archivo html con el modulo path con todo lo que deriva de ellos? te enseño como en mi aporte de este curso, pruébalo y vota por el para que sea valorado por favor jajajaja
Tambien se puede hacer asi, en muchos entornos como heroku por convencion la variable de entorno PORT puede estar configurada para indicarle a su servidor web en qué puerto escuchar. Entonces se usa process.env.PORTque lo que quiere decir es, lo que sea que haya en la variable de entorno PORT o sino 3000 si no hay nada.
...
Ese valor se le pasa a app.listen() usando app.get('port'), que lo que permite es que tu servidor pueda aceptar un parámetro "en qué puerto escuchar" de la variable de entorno.
const express =require('express');const app =express();app.set('port', process.env.PORT||3000)app.get('/',(req, res)=>{ res.render('hello word')})app.listen(app.get('port'),()=>{console.log(`Server on port ${app.get('port')}`)})
chevere usaste arrow functions, pero aun no se puede desplegar archivos html, y mucho menos con imagenes, videos, archivos csss y javascript, para hacerlo necesitas de path, si te interesa desplegar una web estatica con todos sus archivos te enseño como en uno de mis aportes de esta pagina, vota por el porfavor
JAJAJAJA en ese mismo puerto estoy trabajando mi proyecto personal, numero magico, y hablando de hacer magia, te gustaria poder desplegar un archivo html con todo lo que deriva de ellos? yo te enseño como lo hago con path y express corriendo asi un deploy de un sitio web estatico en uno de mis aportes de esta clase
No , ese es el asunto , segui todos los pasos de la clase de la configuracion, pero por ejemplo cuando uso un console.log en Javascript , deberia de salir me un warning , por no deberia estar permitido usar console.log. Pero en mi caso no me indica nada VSCode
ya estas listo para hacer un deploy de tus proyectos estáticos y hacer que node corra con tus archivos usando path, te enseño como en uno de los aportes de esta clase
lo absoluto es que puedes imprimir el texto pero no un archivo html con sus imagenes, videos, archivos css y javascript.... lo podrias hacer usando path, si quieres aprender a hacerlo para desplgar sitios web estaticos y completos te enseño como en uno de mis aportes de esta clase :)
Cuando estás desarrollado, puedes escribir toda la url de tu localhost para que cuando el server la ejecute, te funcione como enlace y puedas darle click para que te lleve al navegador. :)
app.listen(port,()=>{console.log(`Listening at http://localhost:${port}`)})
si quieres hacer un deploy de un sitio estático con sus archivos css, imagenes, videos y Javascript deberian usar a path, les dejo el codigo abajo de la imagen ;)
var expressGalery =require("express");var aplicacion =expressGalery();var path =require('path');aplicacion.use(expressGalery.static(path.join(__dirname,'../reto del curso - flexnet/')));aplicacion.get('/',(peticion, respuesta)=>{ respuesta.sendFile(path.resolve(__dirname,'../reto del curso - flexnet/Index.html'))})aplicacion.get('/login',(peticion, respuesta)=>{ respuesta.sendFile(path.resolve(__dirname,'../reto del curso - flexnet/Login/Index.html'))})aplicacion.get('/registro',(peticion, respuesta)=>{ respuesta.sendFile(path.resolve(__dirname,'../reto del curso - flexnet/Login/Registro.html'))})let puerto =9080;aplicacion.listen(puerto,()=>{console.log('aplicacion corriendo en el puerto: '+ puerto)});
Hola 👋
Bueno tu aporte pero me gustaría darte unas observaciones:
Cuida el orden de tus definiciones, es decir:
Liberías
Archivos o módulos
Constantes
Funciones o módulos y en ellas definimos constantes o variables
Evita el uso de var, su uso en backend es una mala práctica; en frontend conlleva a mal funcionamiento o definiciones de scope
Cuando importes una librería o módulo, procura definirla como la se llama.
Divide tu código en 2 archivos, un index.js y server.js permitiendo descentralizar tu definición.
Cuida la definición de rutas porque el orden afectará su renderizado.
Asigna mediante express las variables globales de tu servidor, no de entorno
.
Al final te comparto tu definición:
// server.js
const express = require("express");
const { join } = require("path");
const server = express()
server.set('port', 3000)
server.use('/', express.static(join(__dirname, 'views')))
server.use('/api', index)
server.get('/*', function (_, res) {
res.sendFile(join(__dirname, 'views', 'index.html'))
})
module.exports = server
// index.js
const server = require("server");
server.listen(server.get('port'), () => {
console.log('aplicacion corriendo en el puerto: ' + puerto)
});
Dejare mis notas por aquí
El primera paso para crear un servidor http con express es requerir dicho modulo
const express =require('express');
Seguidamente creamos una aplicación de express
const app =express();
Indicamos el puerto donde queremos que corra nuestra aplicacion (normalmente es en el puerto 3000)
const port =3000;
Con esto creamos la aplicacion pero aún no se esta utilizando, para empezar a utilizarla podemos crear una ruta de tipo get, esta funcion recibe dos parametros, el primero sera indicar la ruta y el segundo una funcion callback, la funcion callback a su vez recibe dos parametros que son los request(req) y la response(res).
app.get('/',(req, res)=>{ res.send('Hola mi server en express')}
En este caso la ruta sera la principal '/', es decir, que cuando se acceda a esta ruta el sevidor enviara un mensaje.
Finalmente tenemos que hacer que la aplicacion sea escuchada en un puerto, lo hacemos con el metodo listen, este metodo recibe dos parametros que son el puerto donde sera escuchado y una funcion callback
const express =require('express');const app =express();const port =3000;app.get('/',(req, res)=>{ res.send('Hola mi server en express');});app.listen(port,()=>{console.log('Mi port '+ port);});
#Instalación de Express.js y tu primer servidor HTTP
Instalamos express como un dependencia de producción
npm i express
Importamos express en el archivo index.js
const express =require('express')const app =express()const port =3000
Vamos a definir una ruta solo para probar nuestro servidor
const express =require('express')const app =express()const port =3000app.get('/',(req, res)=>{ res.send('Hola mi server en express')})
Seteamos el puerto en el correrá el servidor
const express =require('express')const app =express()const port =3000app.get('/',(req, res)=>{ res.send('Hola mi server en express')})app.listen(port,()=>{console.log(`Listening at ${port}`);});
Ejecutamos nuestro entorno de desarrollo para probar que todo marche bien
npm run dev
Abrimos nuestro navegador en la ruta local seteada, en nuestro caso localhost:3000