Étape 6: Back-end en utilisant NodeJS
Avant de configurer les rappels dans le serveur principal, Sigfox, nous devons mettre en place notre propre serveur pour recevoir les données.
Pour ce faire, nous utiliserons NodeJS. En fait, nous allons utiliser LoopBack cadre pour faciliter cette même opération.
Ce qui est Loopback ?
Sur leur site Internet il est dit :
LoopBack est un cadre de Node.js hautement extensible, open source.
Vous pouvez:
- Créer rapidement des dynamique-to-end reste API.
- Connecter les périphériques et navigateurs aux données et services.
- Utiliser Android, iOS et AngularJS kits de développement logiciel pour facilement créer des applications client. Composants Add-on pour push, gestion de fichiers, connexion 3 rd-party et géolocalisation.
- StrongLoop Arc permet de modifier visuellement, déployer et surveiller les apps de bouclage. Passerelle API StrongLoop agit en intermédiaire entre consommateurs API (clients) et les fournisseurs de l’API à externaliser, sécuriser et gérer les API.
- S’exécute sur site ou dans le cloud
Ce qu’il faut retenir, c’est que vous pouvez créer une API REST en quelques minutes:)
Code source :
Vous pouvez télécharger directement le code source sur Github
Installer le bouclage à l’aide du Musée :
NGP $ installer -g strongloop
Créez votre application :
bouclage de slc $
[?] Quel est le nom de votre application ? sigfox-parler-plante-backend
Bonjour tout le monde de créer / info changer le répertoire de travail hello-world, je suis tout fait. Installation de NGP en cours d’exécution pour vous d’installer les dépendances requises. ...
Exécuter l’interface visuelle et créer les modèles :
arc de slc $
Ensuite, allez au compositeur et ajouter un nouveau modèle « périphérique ». Remplir les propriétés comme indiqué dans l’image. Répéter cette étape pour créer le message (et modèles de randomTwit par la suite si vous souhaitez personnaliser les twits).
Maintenant, vous pouvez exécuter le serveur en cliquant sur le bouton « play » sur le coin supérieur droit.
Notez que j’ai changé le port pour être 3001 sur mon ordinateur car mon port 3000 est occupé.
Accédez à/http://localhost : 3000/explorer/pour voir vos points de terminaison API.
Vous pouvez également exécuter l’application à partir d’un terminal en tapant :
$ node.
Stockez vos données dans une base de données :
Si vous souhaitez stocker les données quelque part, vous pouvez ajouter une source de données. Loopback prise en charge infrastructure MySQL, PostgreSQL, MongoDB et bien d’autres. Droit maintenant, vos données seront lâches si vous arrêtez le serveur ou le redémarrer.
Vous pouvez même décider de stocker les données dans un fichier json. Pour ce faire, sur la racine du projet, accédez à /server/datasource.json et copier ceci :
{« db »: {« name »: « db », « connecteur »: « la mémoire », « fichier »: « mydata.json »}}
Créez l’application Twitter :
Allez sur https://apps.twitter.com/ et créer une app.
Aller à clés et jetons d’accès pour obtenir vos informations d’identification.
Envoyer des twits :
Installez le module de nœud de twitter :
NGP $ installer twitter
Aller à /common/models/message.js pour configurer les twits à envoyer lorsque le nouveau message est créé.
Remplacez le code par ce qui suit :
var Twitter = require('twitter') ;
module.Exports = {function(Message)}
Utiliser les variables d’environnement dans la production var client = nouveau Twitter ({
consumer_key : process.env.TWITTER_CONSUMER_KEY,
consumer_secret : process.env.TWITTER_CONSUMER_SECRET,
access_token_key : process.env.TWITTER_ACCESS_TOKEN_KEY,
access_token_secret : process.env.TWITTER_ACCESS_TOKEN_SECRET,}) ;
Méthodes disponibles :
client.get (path, params, rappel) ;
client.post (path, params, rappel) ;
client.Stream (path, params, rappel) ;
Message.afterRemote (« create », function (ctx, message, next) {console.log ('> teste afterRemote fonction '); console.log (' temps: ' + message.time); console.log ("id de périphérique: ' + message.device); console.log (" données: ' + message.data) ;
client.post (« statuts/update », {statut: "Bonjour, la température est « + message.temp+ » ° C, l’humidité du sol est « + message.hum+ » % et la luminosité est « + message.lum+ » %}, {function (erreur, tweet, réponse)
if(Error) console.log(error) ;
Console.log(Tweet) ; Corps de Tweet.
Console.log(Response) ; Objet de réponse. });
Next() ; }); };
Vous pouvez publier votre application sur Heroku pour le tester !