# Ejemplos
# Hola Mundo
Como cualquier otra libreria, vamos a comenzar con un ejemplo hola mundo. El primer paso es crear el proyecto:
{
"name": "hello-es4x",
"version": "1.0.0",
"private": true,
"main": "index.js",
"dependencies": {
"@vertx/core": "latest",
"@es4x/create": "latest"
},
"scripts": {
"postinstall": "es4x install",
"start": "es4x"
}
}
# Instala las dependencias necesarias
$ npm i
> [email protected] postinstall .../hello-world
> es4x install
npm notice created a lockfile as package-lock.json. You should commit this file.
added 2 packages from 1 contributor and audited 2 packages in 6.704s
found 0 vulnerabilities
WARNING
Si ves el mensaje Installing GraalJS...
, significa que tu instalacion java
en el sistema no es una instalacion GraalVM.
Esto es totalmente OK porque se descargan paquetes adicionales para asegurar el mejor rendimiento.
WARNING
Si ves el mensaje Current JDK only supports GraalJS in Interpreted mode!
, significa que tu instalacion java
en la linea
de comandos es menor que 11 o OpenJ9
.
# Escribe tu codigo
Ahora que tu proyecto esta listo para ser usado, podemos escribir el codigo:
/// <reference types="@vertx/core" />
// @ts-check
console.log('Hello ES4X');
# Ejecutalo
$ npm start
> [email protected] start .../hello-world
> es4x
Hello ES4X
Succeeded in deploying verticle
WARNING
Si ves el mensaje Current JDK only supports GraalJS in Interpreted mode!
, significa que tu instalacion java
en la linea
de comandos es menor que 11 o OpenJ9
.
# Aplicacion Web
En este ejemplo vamos a creer una sencilla aplicacion web:
{
"name": "web-application",
"version": "0.0.1",
"private": true,
"main": "index.js",
"dependencies": {
"@vertx/core": "latest",
"@vertx/web": "latest"
},
"devDependencies": {
"@es4x/create": "latest"
},
"scripts": {
"start": "es4x",
"postinstall": "es4x install"
}
}
# Instala las dependencias necesarias
$ npm i
> [email protected] postinstall .../hello-world
> es4x install
npm notice created a lockfile as package-lock.json. You should commit this file.
added 2 packages from 1 contributor and audited 2 packages in 6.704s
found 0 vulnerabilities
WARNING
Si ves el mensaje Installing GraalJS...
, significa que tu instalacion java
en el sistema no es una instalacion GraalVM.
Esto es totalmente OK porque se descargan paquetes adicionales para asegurar el mejor rendimiento.
WARNING
Si ves el mensaje Current JDK only supports GraalJS in Interpreted mode!
, significa que tu instalacion java
en la linea
de comandos es menor que 11 o OpenJ9
.
# Escribe tu codigo
Ahora que tu proyecto esta listo para ser usado, podemos escribir el codigo:
/// <reference types="@vertx/core" />
// @ts-check
import {Router} from '@vertx/web';
const app = Router.router(vertx);
// serve a simple Hello, World! text message
app.get("/plaintext").handler(ctx => {
ctx.response()
.putHeader("Content-Type", "text/plain")
.end('Hello, World!');
});
// serve a simple Hello, World! JSON message
app.get("/json").handler(ctx => {
ctx.response()
.putHeader("Content-Type", "application/json")
.end(JSON.stringify({message: 'Hello, World!'}));
});
// create an HTTP server and let it be handled by the application
vertx
.createHttpServer()
.requestHandler(app)
.listen(8080);
console.log('Server listening at: http://localhost:8080/');
# Acceso Postgres
En este ejemplo vamos a crear una sencilla aplicacion de consulta Postgres:
{
"name": "posgres",
"version": "0.0.1",
"private": true,
"main": "index.js",
"dependencies": {
"@vertx/core": "latest",
"@vertx/pg-client": "latest"
},
"devDependencies": {
"@es4x/create": "latest"
},
"scripts": {
"start": "es4x",
"postinstall": "es4x install"
}
}
# Instala las dependencias necesarias
$ npm i
> [email protected] postinstall .../hello-world
> es4x install
npm notice created a lockfile as package-lock.json. You should commit this file.
added 2 packages from 1 contributor and audited 2 packages in 6.704s
found 0 vulnerabilities
WARNING
Si ves el mensaje Installing GraalJS...
, significa que tu instalacion java
en el sistema no es una instalacion GraalVM.
Esto es totalmente OK porque se descargan paquetes adicionales para asegurar el mejor rendimiento.
WARNING
Si ves el mensaje Current JDK only supports GraalJS in Interpreted mode!
, significa que tu instalacion java
en la linea
de comandos es menor que 11 o OpenJ9
.
# Escribe tu codigo
Ahora que tu proyecto esta listo para ser usado, podemos escribir el codigo:
/// <reference types="@vertx/core" />
// @ts-check
import { PgPool } from '@vertx/pg-client';
import { PoolOptions } from '@vertx/sql-client/options';
import { PgConnectOptions } from '@vertx/pg-client/options';
import { Tuple } from '@vertx/sql-client';
const SELECT_WORLD = "SELECT id, randomnumber from WORLD where id=$1";
let connectOptions = new PgConnectOptions()
.setCachePreparedStatements(true)
.setHost('database-server')
.setUser('dbuser')
.setPassword('dbpass')
.setDatabase('hello_world');
// Pool options
let poolOptions = new PoolOptions()
.setMaxSize(1);
// Create the client pool
let client = PgPool.pool(vertx, connectOptions, poolOptions);
// select a random row from the database
client.preparedQuery(SELECT_WORLD).execute(Tuple.of(Math.random()), res => {
if (res.succeeded()) {
let resultSet = res.result().iterator();
if (!resultSet.hasNext()) {
ctx.fail(404);
return;
}
let row = resultSet.next();
console.log({
id: row.getInteger(0),
randomNumber: row.getInteger(1)
});
} else {
console.trace(res.cause());
}
});
# Mas ejemplos?
Se te gustaria ver mas ejemplos, ve a vertx-examples (opens new window). Aunque los ejemplos estan escritos en Java, siguiendo la guia advanced, veras como usar los APIs java es trivial.