GNU/Linux >> Tutoriels Linux >  >> Linux

Comment créer une application Web avec Node.js sur Jelastic Cloud

Dans le didacticiel suivant, vous apprendrez à créer une application Web simple dans Node.js et à la publier en ligne à l'aide de Jelastic Cloud.

L'exemple d'application utilisé dans ce guide répondra aux appels REST, permettant au client de sauvegarder et de lire une archive de livre.

Express sera utilisé comme framework pour gérer les requêtes Web et la bibliothèque SQLite pour enregistrer les informations.

Création d'une application serveur

Pour créer une application compatible avec les standards fournis par Node.js, commencez par initialiser une configuration de base de npm. Créez un dossier pour le projet, appelé ici 'livres'.

Ensuite, exécutez la commande de console suivante, dans le dossier nouvellement créé :

 npm init

Un assistant commencera à créer un fichier package.json avec toutes les informations de base sur le projet et ses dépendances.

Utilisez les valeurs suggérées pour avancer, comme indiqué ci-dessous :

This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.

See `npm help json` for definitive documentation on these fields
and what exactly they do.

Use `npm install ` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
package name: (books)
version: (1.0.0)
description:
entry point: (index.js)
test command:
git repository:
keywords:
author:
license: (ISC)
About to write to package.json:

{
 "name": "books",
 "version": "1.0.0",
 "description": "",
 "main": "index.js",
 "scripts": {
   "test": "echo \"Error: no test specified\" && exit 1"
 },
 "author": "",
 "license": "ISC"
}


Is this OK? (yes) yes

Répondez "Oui" pour terminer la procédure.

Ensuite, continuez en installant les deux modules principaux :

npm install --save express sqlite3
  • express :un framework qui gère les requêtes HTTP entrantes ;
  • sqlite3 :un module client pour la gestion de petites bases de données, où enregistrer vos livres.

En ajoutant le paramètre --save, npm est invité à mettre à jour notre package.json, et ajoute ces deux dépendances au projet.

Créez ensuite le point d'entrée de l'application en créant le fichier index.js dans le même répertoire que package.json.

Utilisez votre éditeur de texte préféré pour coller le contenu suivant dans le fichier nouvellement créé :

/**
* Per prima cosa, includiamo i due moduli installati 
* precedentemente
*/
var express = require('express');

var sqlite3 = require('sqlite3').verbose();

/**
*  At this point, create a database in the memory
* (i.e. without saving it on the disk)
* where to save your data
*/
var db = new sqlite3.Database(':memory:');

/**
* So, create a new chart with just two fields
* - title : Il titolo del libro
* - author : Il nome completo dell'autore
*/
db.run("CREATE TABLE books (title TEXT, author TEXT)");

/**
* Initialize a new express application 
*/
var app = express();

/**
* Use the main server root to
* list all the books available 
*/
app.get('/', function (req, res) {

   db.all(`SELECT * FROM books` , (err,rows) => {

       /**
        * Send all the lines found to the “books” chart
        */
       res.send( rows );
   });

});

/**
* For saving, instead, use
*  /save/ followed by the title and the author
*/
app.get('/save/:title/:author', function (req, res) {

   /**
    * Prepare INSERT instruction in your chart 
    */
   var stmt = db.prepare("INSERT INTO books VALUES (?, ?)");

   /**
    * And run the query above, by transferring all the data
    * to the url
    */
   stmt.run( req.params.title, req.params.author , (err,rows) =>{

       /**
        * Finally, send a ‘true’ status to show that
        * the saving was successful
        */
       res.send(true);
   });

   stmt.finalize();

});

/**
* Therefore, run the server which listens on 8001 port. 
*/

app.listen( 8001 , function () {
   console.log('Books server ready');
});

Création d'un nouvel environnement Jelastic

Entrez dans le panneau de gestion de Jelastic Cloud puis appuyez sur le bouton "NOUVEL ENVIRONNEMENT" situé en haut à gauche.

L'onglet de configuration du nouvel environnement s'ouvrira.

Sélectionnez "Node.js" dans les onglets ci-dessus et préparez votre environnement comme indiqué ci-dessus.

Terminez l'installation en cliquant sur le bouton "Créer".

Déploiement de l'application Node.js

Avant de procéder au déploiement proprement dit, créez une archive zip ou tar avec les fichiers précédemment créés comme suit :

  • index.js
  • package.json

Une fois l'archive créée, chargez le package dans votre instance. Utilisez le gestionnaire de déploiement en cliquant sur le bouton "Télécharger".

Sélectionnez l'archive créée avant et terminez le téléchargement.

Une fois terminé, utilisez le bouton "Déployer vers" comme indiqué sur la figure :

Sélectionnez l'environnement créé pour l'application et cliquez sur le bouton "Déployer" :

Lorsque la procédure est terminée, accédez à votre instance en cliquant sur le bouton "Ouvrir dans le navigateur" :

Si tout fonctionne correctement, votre instance répondra par :

[]

Ensuite, utilisez le navigateur pour enregistrer les 3 premiers livres en visitant les URL suivantes. Pensez à remplacer l'adresse par celle de votre instance :

http://books.it1.eur.aruba.jenv-aruba.cloud/save/Il%20Decamerone/Giovanni%20Boccaccio

http://books.it1.eur.aruba.jenv-aruba.cloud/save/Il%20fu%20Mattia%20Pascal/Luigi%20Pirandello

http://books.it1.eur.aruba.jenv-aruba.cloud/save/Il%20barone%20rampante/Italo%20Calvino

Assurez-vous donc que les livres ont bien été enregistrés en accédant à l'URL principale de votre instance :

http://books.it1.eur.aruba.jenv-aruba.cloud/

Le serveur doit répondre avec le contenu suivant :

[{"title":"Il Decamerone","author":"Giovanni Boccaccio"},{"title":"Il fu Mattia Pascal","author":"Luigi Pirandello"},{"title":"Il barone rampante","author":"Italo Calvino"}]

Linux
  1. Comment créer une base de données dans MySQL avec MySQL Workbench

  2. Comment Linux gère-t-il plusieurs séparateurs de chemins consécutifs (/home////nom d'utilisateur///fichier) ?

  3. Comment créer une VM à partir de zéro avec Virsh ?

  4. Conflits Node.js :/sbin/node Vs /usr/bin/node ?

  5. Comment obtenir des statistiques système avec node.js

Comment configurer un pare-feu sur Jelastic Cloud

Comment installer Apache Tomcat sur Jelastic Cloud

Comment installer Magento sur Jelastic Cloud

Comment créer une application Web avec Node.js sur Jelastic Cloud

Comment créer un e-commerce avec Magento

Comment créer des araignées Web avec Scrapy