- Learn
- Jelastic Cloud: guida all’uso
- Realizzazione dell’applicazione di esempio
Realizzazione dell’applicazione di esempio
In questa lezione ci dedichiamo direttamente al codice di esempio.
Per prima cosa creiamo il file package.json con cui integreremo le dipendenze di cui abbiamo bisogno, cioè il driver per MongoDB ed il framework Express per la definizione delle API REST:
{
"name": "proverbi",
"version": "1.0.0",
"description": "",
"main": "index.js",
"dependencies": {
"express": "^4.17.1",
"mongodb": "^3.5.0"
}
}
A questo punto possiamo scrivere il codice applicativo vero e proprio. Per prima cosa, vediamo come collegarci al database MongoDB. Il database, ricordiamo, si trova su un altro nodo e per questo dobbiamo avere a disposizione i seguenti parametri:
- URL del database server. Sarà piuttosto lungo e stabilito da Jelastic. Quello che indichiamo nell’esempio è relativo al nostro container, ed equivale a node6748-env-4822122.it1.eur.aruba.jenv-aruba.cloud;
- la porta TCP del servizio DBMS. Nel caso di MongoDB, di default è 27017;
- lo username di accesso al servizio. Per i nostri test abbiamo utilizzato admin, cioè quello che ci è stato inviato con la mail. Ma per l’uso in produzione si dovrebbe sempre utilizzare un accesso senza privilegi di amministrazione;
- la password relativa all’utente indicato al punto precedente;
- il nome del database che abbiamo creato nel pannello di amministrazione.
Con buona parte di questi elementi componiamo una stringa di connessione nel seguente formato:
mongodb://{username}:{password}@{url_server_MongoDB}:{porta_server_MongoDB}
Questo il codice completo:
# importazione delle librerie
const express = require("express")
const parser = require("body-parser")
# attivazione di Express
var app = express()
# tramite i riferimenti "database" e "collection" interagiremo con i dati dall'interno dei metodi
var database
var collection
# la stringa multi-riga che utilizziamo come frase di benvenuto al servizio
const info=`
SERVIZIO ATTIVO<br>
Utilizzare le API per le interrogazioni:<br>
- GET /proverbi<br>
- GET /proverbi/:regione<br>
- POST /proverbi<br>
`
app.use(parser.json())
app.use(parser.urlencoded({ extended: true }))
# inizio delle funzioni di risposta alle interrogazioni dei client
app.get("/", (request, response) => {
response.send(info)
})
app.post("/proverbi", (req, resp) => {
collection.insert(req.body, (err, res) => {
if(err) {
return resp.status(500).send(err)
}
resp.status(201).send(res.result);
})
})
app.get("/proverbi", (req, resp) => {
collection.find({}).toArray((err, res) => {
if(err) {
return resp.status(500).send(err)
}
resp.send(res)
})
})
app.get("/proverbi/:regione", (req, resp) => {
collection.find({"regione": req.params.regione}).toArray((err, res) => {
if(err) {
return resp.status(500).send(err)
}
resp.send(res)
})
})
# avvio del servizio in ascolto sulla porta 8888
# TUTTI I RIFERIMENTI A MONGODB VANNO SOSTITUITI CON QUELLI DEL PROPRIO ENVIRONMENT
app.listen(8888, () => {
var MongoClient = require('mongodb').MongoClient;
MongoClient.connect("mongodb://admin:[email protected]:27017", function(err, client) {
if(!err) {
database = client.db('proverbi')
collection = database.collection("proverbi_locali")
}
}) // fine MongoClient.connect
})
La maggior parte del codice serve a definire la risposta che le API forniranno alle interrogazioni, mentre la parte finale mette il server in ascolto. Abbiamo pertanto un’applicazione Node.js identica ad una definita in locale, ad eccezione dei parametri per il collegamento al DBMS.
È importante che prima del caricamento su Jelastic, il codice venga pulito e sperimentato il più possibile. Conviene non avere fretta di caricarlo, e piuttosto sottoporlo in locale ad un accurato processo di debug. Prima di integrarlo nella piattaforma, potremo anche sottoporlo a unit testing sulle sue funzionalità interne, lasciando test più complessi alla fase successiva al deployment.
Nel codice finale ci occupiamo inoltre di impostare la connessione al database e l’invocazione di una collection che abbiamo scelto di chiamare proverbi_locali. La porta 8888 è quella che abbiamo scelto noi per il servizio, ma come vedremo sarà poi Jelastic a veicolare la connessione sull’indirizzo che attiverà. La porta di ascolto del servizio può essere utile per sperimentare il funzionamento, nel caso in cui ci connettiamo al server dall’interno del nodo ed invochiamo il servizio stesso in locale.
Se vuoi aggiornamenti su Cloud Computing, Server inserisci la tua email nel box qui sotto:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
La tua iscrizione è andata a buon fine. Se vuoi ricevere informazioni personalizzate compila anche i seguenti campi opzionali:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
I Video di HTML.it
Caricare file ISO con Daemon Tool lite
In questo video vedremo come utilizzare Daemon Tool Lite, il software gratuito per poter utilizzare immagini ISO senza dover necessariamente […]