# Hola Mundo
La aplicacion mas sencilla que podemos crear es un 'Hola mundo' en el archivo hello-es4x.js
:
vertx.createHttpServer()
.requestHandler(req => {
req.response()
.end('Hola mundo ES4X!');
})
.listen(8080);
Ahora puedes ejecutar esta aplicacion usando:
$ es4x hello-es4x.js
TIP
En sistemas UNIX, los scripts se pueden hacer ejecutables y puedes usar #!/usr/bin/env es4x
para hacerlos
auto ejecutables. Recuerda de todos modos que las dependencias deberian estar listas en el directorio de trabajo.
En una segunda terminal:
$ curl localhost:8080
Hola mundo ES4X!
WARNING
Ejecutar scripts utilizando el comando es4x
directamente puede ser util para scripts basicos que no tienen dependencias
a parte de vertx
. Para aplicaciones mas complejas se deberia utilizar un proyecto y un gestor de paquetes.
# Crea un proyecto nuevo
ES4X utiliza npm
como la herramienta de gestion del proyecto, para crear un proyecto nuevo se provee el siguiente comando:
# Crea un directorio del proyecto
mkdir myapp
# Cambia al directorio del proyecto
cd myapp
# Crea el proyecto
es4x project
Un proyecto es un archivo package.json
con algunas cosas pre-configuradas:
{
"version" : "1.0.0",
"description" : "This is a ES4X empty project.",
"name" : "myapp",
"main" : "index.js",
"scripts" : {
"test" : "es4x test index.test.js",
"postinstall" : "es4x install",
"start" : "es4x"
},
"dependencies": {
"@es4x/create": "latest",
"@vertx/unit": "latest"
},
"dependencies": {
"@vertx/core": "latest"
},
"keywords" : [ ],
"author" : "",
"license" : "ISC"
}
TIP
Para proyectos TypeScript
, ejecuta la herramienta para crear proyectos con: es4x project --ts
El gancho post-install
delegara en es4x para resolver todos las dependencias maven
y crear el script es4x-launcher
TIP
El script es4x-launcher
se asegurara de que la aplicacion se ejecuta utilizando es4x y no nodejs
. Este script puede
utilizarse en produccion, donde se puede evitar el paquete @es4x/create
.
# create-vertx-app
Con create-vertx-app
puedes arrancar rapidamente tu aplicacion ES4X TypeScript o JavaScript con unas cuantas teclas.
Si GUI es la forma preferida de crear aplicaciones, el mismo generador puede ser utilizado como
PWA (opens new window).
# Añadir dependencias
Añadir dependencias no es diferente de como los desarrolladores JavaScript
estan acostumbrados:
# añade otras dependencias...
npm install @vertx/unit --save-dev # O yarn add -D @vertx/unit
npm install @vertx/web --save-prod # O yarn add @vertx/web
# Activara la descarga de dependencias npm + java
npm install
# Coding
Con la configuracion del proyecto completa, es hora de escribir algo de codigo. Como se describio antes, ES4X utiliza definiciones
TypeScript
para mejorar la experiencia de desarrollo con codigo auto completado y comprobaciones de codigo opcionales.
Con todas las aplicaciones ES4X hay un objeto global vertx
que es la instancia configurada de vert.x que se utiliza
en la aplicacion.
TIP
Para conseguir codigo auto completado en Visual Studio Code (opens new window) la primera linea en tu script principal deberia ser:
/// <reference types="es4x" />
La aplicacion hello index.js
deberia ser:
/// <reference types="es4x" />
// @ts-check
import { Router } from '@vertx/web';
const app = Router.router(vertx);
app.route('/').handler(ctx => {
ctx.response()
.end('Saludos desde Vert.x Web!');
});
vertx.createHttpServer()
.requestHandler(app)
.listen(8080);
console.log('Server escuchando: http://localhost:8080/')
Esta app arranca el servidor y escucha en el puerto 8080 para las conexiones. El app responde con "Saludos desde Vert.x Web!
"
para las peticiones en la URL principal (/
) o ruta. Para cualquier otro camino, respondera con un 404 Not Found.
WARNING
La sintaxis del modulo ES6 puede ser utilizada en archivos .js
. ES4X los traduce a declaraciones commonjs
require()
sin embrago exports
no seran traducidos. Esta funcion es solo para ayudar a trabajar con IDEs que pueden auto importar
tal como Visual Studio Code
.
# Soporte MJS
ES4X tiene archivos .mjs
disponibles. Es este caso la resolucion de los modulos no utilizara commonjs
require()
pero
usara el cargador nativo de modulos de graaljs.
Con soporte graaljs para .mjs
tanto import
como export
funcionaran como han sido diseñados en la especificacion ES6.
TIP
Para permitir soporte .mjs
utiliza la extension .mjs
en tus archivos JavaScript, o arranca tu aplicacion con
-Desm`.
WARNING
No es posible mezclar commonjs
con esm
en el mismo proyecto. Si no estas seguro, usa commonjs
.
← Instalacion Ejecuta →