Crear y ejecutar un proyecto Hapi.js
¿Qué es Hapi.js?
Hapi.js es un potente y flexible framework de Node.js utilizado para construir aplicaciones y servicios. Fue creado por Walmart Labs y es conocido por su sistema de plugins y sus extensas funcionalidades. Hapi.js ofrece una forma sencilla de manejar solicitudes y respuestas HTTP, permitiendo a los desarrolladores construir aplicaciones web y APIs de alto rendimiento de forma más eficiente.
Principales características y ventajas de Hapi.js
- Sistema de plugins: Hapi.js cuenta con un robusto sistema de plugins, que facilita la extensión y reutilización del código.
- Sistema de enrutamiento: Proporciona una definición y manejo de rutas flexible y potente.
- Validación de entradas: Incorpora potentes funciones de validación de entradas, garantizando la integridad y seguridad de los datos.
- Ecosistema rico: Tiene un abundante soporte de plugins y una comunidad activa, cubriendo una amplia gama de necesidades funcionales comunes.
- Seguridad: Incorpora diversas características de seguridad, como la prevención de ataques CSRF y XSS.
Utilizar Hapi.js puede ayudar a los desarrolladores a construir rápidamente aplicaciones web y APIs seguras y de alto rendimiento.
Crear y ejecutar un proyecto Hapi.js con ServBay
En este artículo, utilizaremos el entorno de Node.js proporcionado por ServBay para crear y ejecutar un proyecto Hapi.js. Usaremos la función de 'Host' de ServBay para configurar el servidor web y acceder al proyecto a través de un proxy inverso.
Crear proyecto Hapi.js
Inicializar proyecto
Primero, asegúrese de haber instalado el entorno de Node.js proporcionado por ServBay. Luego, en el directorio raíz recomendado por ServBay
/Applications/ServBay/www
, cree un nuevo proyecto Hapi.js:bashcd /Applications/ServBay/www mkdir servbay-hapi-app cd servbay-hapi-app npm init -y npm install @hapi/hapi
1
2
3
4
5Crear archivo de la aplicación
Cree un archivo
server.js
en el directorio raíz del proyecto y añada el siguiente código:javascriptconst Hapi = require('@hapi/hapi'); const init = async () => { const server = Hapi.server({ port: process.env.PORT || 3000, host: 'localhost' }); server.route({ method: 'GET', path: '/', handler: (request, h) => { return 'Hello ServBay!'; } }); await server.start(); console.log('Server running on %s', server.info.uri); }; process.on('unhandledRejection', (err) => { console.log(err); process.exit(1); }); init();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Entrar en modo de desarrollo
Ejecutar servidor de desarrollo
Inicie el servidor de desarrollo y especifique el puerto (por ejemplo: 8585):
bashPORT=8585 node server.js
1Esto iniciará un servidor de desarrollo local y expondrá el puerto 8585.
Configurar proxy inverso host de ServBay
Utilice la función de 'Host' de ServBay para acceder al servidor de desarrollo a través de un proxy inverso. En la configuración de 'Host' de ServBay, añada un nuevo proxy inverso:
- Nombre:
My first Hapi.js dev site
- Dominio:
servbay-hapi-test.dev
- Tipo de host:
Proxy inverso
- IP:
127.0.0.1
- Puerto:
8585
Para obtener detalles sobre la configuración, consulte añadir sitio web de desarrollo Nodejs.
- Nombre:
Acceder al modo de desarrollo
Abra su navegador y acceda a
https://servbay-hapi-test.dev
para ver el proyecto en tiempo real. Gracias al soporte de ServBay para dominios personalizados y certificados SSL gratuitos, disfrutará de mayor seguridad.
Desplegar versión de producción
Preparar entorno de producción
Asegúrese de que su proyecto se ejecute correctamente en el entorno de producción. Normalmente, los proyectos Hapi.js no requieren pasos de construcción específicos, pero podría necesitar configurar algunas variables de entorno u otras configuraciones.
Ejecutar servidor de producción
Inicie el servidor de producción y especifique el puerto (por ejemplo: 8586):
bashPORT=8586 NODE_ENV=production node server.js
1Configurar proxy inverso host de ServBay
Utilice la función de 'Host' de ServBay para acceder al servidor de producción a través de un proxy inverso. En la configuración de 'Host' de ServBay, añada un nuevo proxy inverso:
- Nombre:
My first Hapi.js production site
- Dominio:
servbay-hapi-test.prod
- Tipo de host:
Proxy inverso
- IP:
127.0.0.1
- Puerto:
8586
- Nombre:
Acceder al modo de producción
Abra su navegador y acceda a
https://servbay-hapi-test.prod
para ver la versión de producción. Con los dominios personalizados y los certificados SSL gratuitos de ServBay, su sitio web será más seguro y confiable.
Conexión a base de datos
ServBay ofrece soporte para bases de datos Redis, MariaDB, PostgreSQL y MongoDB. A continuación se muestra cómo conectarse a estas bases de datos.
Conectar MongoDB
Instale
@hapi/nes
ymongoose
:bashnpm install mongoose
1Luego, introduzca y conecte en el proyecto:
javascriptconst mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/servbay-hapi-app', { useNewUrlParser: true, useUnifiedTopology: true }) .then(() => console.log('MongoDB connected')) .catch(err => console.log(err));
1
2
3
4
5Conectar Redis
Instale
redis
:bashnpm install redis
1Luego, introduzca y conecte en el proyecto:
javascriptconst redis = require('redis'); const client = redis.createClient(); client.on('error', function (err) { console.log('Error ' + err); }); client.on('connect', function () { console.log('Redis client connected'); });
1
2
3
4
5
6
7
8
9
10Conectar MariaDB
Instale
mariadb
:bashnpm install mariadb
1Luego, introduzca y conecte en el proyecto:
javascriptconst mariadb = require('mariadb'); const pool = mariadb.createPool({ host: 'localhost', user: 'root', password: 'password', database: 'servbay_hapi_app' }); pool.getConnection() .then(conn => { console.log("Connected to MariaDB"); conn.release(); //release to pool }) .catch(err => { console.log("Not connected due to error: " + err); });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16Conectar PostgreSQL
Instale
pg
:bashnpm install pg
1Luego, introduzca y conecte en el proyecto:
javascriptconst { Pool } = require('pg'); const pool = new Pool({ user: 'user', host: 'localhost', database: 'servbay_hapi_app', password: 'password', port: 5432, }); pool.connect((err, client, done) => { if (err) throw err; console.log('Connected to PostgreSQL'); done(); });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Con los pasos anteriores, habrá creado y ejecutado con éxito un proyecto Hapi.js utilizando las funciones proporcionadas por ServBay para gestionar y acceder a su proyecto, al mismo tiempo que se conecta a diversas bases de datos.