Skip to main content

Middleware Bootstrap pour ExpressJS

Je suis souvent amené à travailler avec ExpressJS pour créer des applications disposant de hiérarchie plus ou moins complexes. Pour ceux qui ne connaissent pas, ExpressJS (ou Express) est un module pour NodeJS (encore ? et oui !), ou plutôt un framework pour créer des applications Web rapidement. Par application Web, j’entends le sens large du terme : aussi bien des API REST que des interfaces utilisateurs. Je reviendrai sur les API REST dans un avenir proche, car ici, ce sont les interfaces qui nous intéressent.

Pour réaliser les GUI, j’ai pour habitude d’utiliser Bootstrap. Il est simple, rapide d’installation et fournit les bases pour toute interface responsive bien faite. Cependant, je n’ai pas trouvé de façon aisée de combiner Bootstrap et ExpressJS. Sur tous les librairies que j’ai pu croiser, il fallait créer de nombreux chemins statiques pour pouvoir servir au Frontend les différents fichiers dont est composé Bootstrap.

Pour me faciliter la vie – et j’espère également la votre -, j’ai créé un petit middleware sous la forme d’un module NodeJS qui se charge de créer ces routes statiques, basées sur la dernière version de Bootstrap. Il s’agit de express-bootstrap-service. En trois lignes de codes, Bootstrap sera disponibles pour votre interface Frontend. Voici une application d’exemple :

var bootstrapService = require("express-bootstrap-service");
var express = require('express');
var app = express();

app.use(bootstrapService.serve);
app.get('/', function (req, res) {
  res.send('Hello World!');
});

var server = app.listen(3000, function () {
  var host = server.address().address;
  var port = server.address().port;
  console.log('Example app listening at http://%s:%s', host, port);
});

Ce module va créer des routes permettant d’inclure les scripts JavaScript et feuilles de style CSS dans les différents templates.

La documentation complète est disponible sur la petite page dédiée : Bootstrap Middleware for ExpressJS ou bien sur Github.

Mon environnement de test / development

Si, comme moi, vous aimez bien bricoler des langages server-side mais n’avez pas forcément une vieille machine à recycler en serveur, ou l’utilité de claquer une centaine d’euros par mois en serveur dédié, j’ai la solution ! Je me suis installé un petit environnement de test (notamment pour NodeJS, mon langage du moment) qui n’est -certes- pas aussi puissant qu’un serveur dédié mais qui s’en rapproche.

J’ai donc souscrit à un Virtual Private Server (VPS) chez OVH. Pour la modique somme de 2,39 € / mois, je dispose d’un petit environnement sur le Cloud (c’est à la mode en plus !) ayant des caractéristiques assez similaires à un serveur dédié, juste avec un espace et un processeur assez limité.

Mon installation est relativement simple. Lors de la commande, j’ai choisi d’installer la dernière version de Debian disponible. En quelques minutes, le serveur a été créé et j’ai reçu par email mes identifiants de connexion. Ci-dessous, nous allons voir comment installer simplement NodeJS pour effectuer des petits tests !

Lire la suite

Annoncer la météo avec NodeJS

Hello !

Voici un petit guide qui va vous montrer comment réaliser un script NodeJS qui va vous informer du temps qu’il fait :-). Nous aurons recours à deux API externes :

  • l’API de OpenWeatherMap : http://openweathermap.org/api
  • l’API (non officielle) de Google Text-to-speech : translate.google.com/translate_tts

Avant tout, cette étape m’a permise de tester le service TTS proposé par Google. Bien que je ne m’attendais pas à une voix aussi parfaite qu’un réel humain, j’avoue que j’ai un peu été déçu par la voix retournée par l’API de Google. Je m’attendais quand même à quelque chose de plus proche de la commande « say » de OSX qui, elle, est relativement fluide dans la parole.

L’idée est de faire dire – pour le moment manuellement – à cette douce voix une phrase du style : « Bulletin météo : *le temps qu’il fait*. Il fait actuellement *température* degrés. »

Lire la suite