# Hello World
Самое простое приложение, которое можно написать - это Hello World
в файле hello-es4x.js
:
vertx.createHttpServer()
.requestHandler(req => {
req.response()
.end('Hello ES4X world!');
})
.listen(8080);
Вы можете запустить это приложение следующим способом:
$ es4x hello-es4x.js
TIP
В системах UNIX, скрипты можно сделать выполняемыми и шебанг #!/usr/bin/env es4x
скриптами, что сделает их
автозапускаемыми. При этом учтите, что зависимости уже должны быть в текущей рабочей директории.
Во второй консоли:
$ curl localhost:8080
Hello ES4X world!
WARNING
Запуск скриптов с помощью команды es4x
напрямую может быть полезным для маленьких скриптов, которые зависят только от
vertx
. Для более сложных приложений следует использовать менеджер проекта и пакетов.
# Создаем новый проект
ES4X использует инструмент для управления проектом npm
, для создания нового проекта используется утилитарная команда:
# создаем директорию проекта
mkdir myapp
# переходим в директорию проекта
cd myapp
# создаем проект
es4x project
Проект - это файл package.json
с некоторыми предварительно настроенными опциями:
{
"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
Для проектов TypeScript
, запустите команду создания проекта с опцией: es4x project --ts
Хук post-install
поручает es4x разрешить maven
зависимости и создать скрипт es4x-launcher
.
TIP
Скрипт es4x-launcher
обеспечивает запуск приложений через es4x, а не nodejs
. Этот скрипт может быть использован в
продакшне, где вы можете отказаться от пакета @es4x/create
.
# create-vertx-app
С помощью create-vertx-app
вы можете быстро загрузить ES4X TypeScript или JavaScript приложения в несколько нажатий
клавиш. Если вы предпочитаете создавать приложения через GUI, может быть использован такой генератор, как
PWA (opens new window).
# Добавляем зависимости
Добавление зависимостей не отличается от привычного для JavaScript
разработчиков:
# добавляем другие зависимости...
npm install @vertx/unit --save-dev # OR yarn add -D @vertx/unit
npm install @vertx/web --save-prod # OR yarn add @vertx/web
# запустит загрузку зависимостей npm + java
npm install
# Пишем код
Когда настройки проекта завершены, можно начинать писать код. Как было отмечено ранее, ES4X использует определения
TypeScript
, чтобы сделать процесс разработки приятнее с помощью автозавершения кода и опциональных проверок типов.
Для всех приложений ES4X доступен глобальный объект vertx
- настроенный экземпляр vert.x, который может быть
использован приложением.
TIP
Чтобы завершение кода было доступно в Visual Studio Code (opens new window), первая строка вашего главного скрипта должна быть такой:
/// <reference types="es4x" />
Примитивный index.js
должен быть таким:
/// <reference types="es4x" />
// @ts-check
import { Router } from '@vertx/web';
const app = Router.router(vertx);
app.route('/').handler(ctx => {
ctx.response()
.end('Hello from Vert.x Web!');
});
vertx.createHttpServer()
.requestHandler(app)
.listen(8080);
console.log('Server listening at: http://localhost:8080/')
Данное приложение запускает сервер и прослушивает порт 8080 в ожидании подключений. Приложение будет отвечать
"Hello from Vert.x Web!
" всем запросам на корневой URL (/
). Для запросов по другим путям приложение ответит
404 Not Found.
WARNING
Синтаксис модуля ES6 может быть использован в файлах .js
. ES4X переведет команды commonjs
require()
, однако
команды exports
не будут переведены. Эта возможность нужна только, чтобы улучшить работу с IDE, которые могут делать
автоимпорт, например, Visual Studio Code
.
# Поддержка MJS
ES4X также поддерживает файлы .mjs
. В этом случае разрешение модулей не будет использовать commonjs
require()
, а
будет использовать нативный загрузчик модулей graaljs.
С graaljs .mjs
поддержка и import
, и export
будет работать, как описано в спецификации ES6.
TIP
Чтобы включить поддержку .mjs
, или используйте расширение .mjs
в ваших файлах JavaScript
, или запустите приложение
с флагом -Desm
.
WARNING
Нельзя смешивать commonjs
и esm
В одном проекте. Если вы не уверены в выборе, используйте commonjs
.