# Παραδείγματα
# Hello World
Όπως κάθε άλλη βιβλιοθήκη, θα ξεκινήσουμε με ένα παράδειγμα hello world. Το πρώτο βήμα είναι να δημιουργήσετε ένα πρότζεκτ:
{
"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"
}
}
# Εγκαταστήστε τις απαιτούμενες εξαρτήσεις
$ 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
Εάν δείτε το μήνυμα Installing GraalJS...
, αυτό σημαίνει ότι το σύστημά σας δεν έχει εγκατάσταση GraalVM java
.
Αυτό είναι απολύτως εντάξει, καθώς λαμβάνονται επιπλέον πακέτα για να εξασφαλιστεί η καλύτερη απόδοση.
WARNING
Εάν δείτε το μήνυμα Current JDK only supports GraalJS in Interpreted mode!
, σημαίνει οτι η έκδοση της java
είναι είτε μικρότερη από 11 ή OpenJ9
.
# Γράψτε τον κωδικό
Τώρα που το πρότζεκτ είναι έτοιμο για χρήση, μπορούμε να γράψουμε τον κωδικό:
/// <reference types="@vertx/core" />
// @ts-check
console.log('Hello ES4X');
# εκτελέστε το
$ npm start
> [email protected] start .../hello-world
> es4x
Hello ES4X
Succeeded in deploying verticle
WARNING
Εάν δείτε το μήνυμα Current JDK only supports GraalJS in Interpreted mode!
, σημαίνει οτι η έκδοση της java
είναι είτε μικρότερη από 11 ή OpenJ9
.
# Εφαρμογή ιστού
Σε αυτό το παράδειγμα θα δημιουργήσουμε μια απλή διαδικτυακή εφαρμογή:
{
"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"
}
}
# Εγκαταστήστε τις απαιτούμενες εξαρτήσεις
$ 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
Εάν δείτε το μήνυμα Installing GraalJS...
, αυτό σημαίνει ότι το σύστημά σας δεν έχει εγκατάσταση GraalVM java
.
Αυτό είναι απολύτως εντάξει, καθώς λαμβάνονται επιπλέον πακέτα για να εξασφαλιστεί η καλύτερη απόδοση.
WARNING
Εάν δείτε το μήνυμα Current JDK only supports GraalJS in Interpreted mode!
, σημαίνει οτι η έκδοση της java
είναι είτε μικρότερη από 11 ή OpenJ9
.
# Γράψτε τον κωδικό
Τώρα που το έργο είναι έτοιμο για χρήση, μπορούμε να γράψουμε τον κωδικό:
/// <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/');
# Πρόσβαση σε Postgres
Σε αυτό το παράδειγμα θα δημιουργήσουμε μια απλή εφαρμογή 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"
}
}
# Εγκαταστήστε τις απαιτούμενες εξαρτήσεις
$ 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
Εάν δείτε το μήνυμα Installing GraalJS...
, αυτό σημαίνει ότι το σύστημά σας δεν έχει εγκατάσταση GraalVM java
.
Αυτό είναι απολύτως εντάξει, καθώς λαμβάνονται επιπλέον πακέτα για να εξασφαλιστεί η καλύτερη απόδοση.
WARNING
Εάν δείτε το μήνυμα Current JDK only supports GraalJS in Interpreted mode!
, σημαίνει οτι η έκδοση της java
είναι είτε μικρότερη από 11 ή OpenJ9
.
# Γράψτε τον κωδικό
Τώρα που το έργο είναι έτοιμο για χρήση, μπορούμε να γράψουμε τον κωδικό:
/// <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());
}
});
# More examples?
Εάν θέλετε να δείτε περισσότερα παραδείγματα, απλώς μεταβείτε στο vertx-examples (opens new window). Eπαρόλο που τα παραδείγματα είναι γραμμένα σε Java, ακολουθώντας τον οδηγό advanced, θα δείτε πώς η χρήση των Java API μπορεί να είναι ασήμαντη.