Stap 6: Back-end met NodeJS
Voordat de retouraanroepen in de back-end Sigfox instelt, moeten we onze eigen server instellen om de gegevens te ontvangen.
Om dat te doen, zullen we gebruiken NodeJS. In feite, zullen we gebruiken LoopBack kader om dit nog gemakkelijker te maken.
Wat is de Loopback?
Op hun website beweerd wordt:
LoopBack is een sterk uitbreidbare, open-source Node.js kader.
U kunt:
- Maak snel dynamische end-to-end REST API's.
- Verbinden met apparaten en browsers gegevens en diensten.
- Android, iOS en AngularJS SDKs gemakkelijk client te maken apps gebruiken. Add-on componenten voor push, bestandsbeheer, 3rd-party login en geolocation.
- Gebruik StrongLoop Arc visueel bewerken, implementeren en bewaken van LoopBack apps. StrongLoop API Gateway fungeert intermediair tussen API consumenten (clients) en API aanbieders te belichamen, beveiligen en beheren van API's.
- Loopt van on-premise of in de cloud
Wat je moet onthouden is dat je een REST API in enkel weinig notulen maken kunt :)
Broncode:
U kunt direct de broncode op Github downloaden
Loopback met behulp van npm installeren:
$ npm installeren -g strongloop
Maak uw app:
$ slc loopback
[?] Wat is de naam van uw aanvraag? sigfox-praten-plant-backend
hello-wereld maken / info de werkdirectory omzetten in hello-wereld ik ben al klaar. Lopende npm installeren voor u te installeren van de vereiste afhankelijkheden. ...
Uitvoeren van de visuele interface en maak de modellen:
$ slc boog
Ga dan naar de componist en toevoegen van een nieuw model "apparaat". Vul de eigenschappen zoals aangegeven in de afbeelding. Herhaal dit tot het bericht (en randomTwit modellen uiteindelijk als u wilt aanpassen van de twits).
Nu, kunt u de server kunt uitvoeren door te klikken op de "play" knop op de rechterbovenhoek.
Merk op dat ik de poort veranderde te 3001 op mijn computer omdat mijn haven 3000 bezet is.
Ga naar/http://localhost:3000/explorer/om te zien uw API-eindpunten.
U kunt de toepassing ook uitvoeren vanaf een terminal door te typen:
$ knooppunt.
Uw gegevens opslaan in een database:
Als u wilt dat de gegevens ergens op te slaan, kunt u een datasource. Loopback kader ondersteuning MySQL, PostgreSQL, MongoDB en vele anderen. Recht nu, uw gegevens zullen los als u de server stopt of opnieuw start.
U kunt zelfs bepalen voor het opslaan van de gegevens in een json-bestand. Om dit te doen, in de hoofdmap van het project, ga naar /server/datasource.json en kopieer dit:
{"db": {"name": "db", "connector": "geheugen", "bestand": "mydata.json"}}
Maak Twitter app:
Ga naar https://apps.twitter.com/ en maak een app.
Ga naar de sluitsteen en toegangstokens voor het krijgen van uw geloofsbrieven.
Twits te sturen:
Installeer twitter knooppunt module:
$ npm installeren twitter
Ga naar /common/models/message.js voor het configureren van de twits te worden verzonden als nieuw bericht wordt gemaakt.
De code door de volgende vervangen:
var Twitter = require('twitter');
module.exports = function(Message) {}
De omgevingsvariabelen gebruiken in productie var client = nieuwe 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,});
Beschikbare methoden:
client.Get (pad, params, callback);
client.post (pad, params, callback);
client.Stream (pad, params, callback);
Message.afterRemote ('aanmaken', function (ctx, bericht, volgende) {console.log ('> testen afterRemote functie '); console.log (' tijd: "+ message.time); console.log (' apparatenidentiteitskaart: ' + message.device); console.log (' gegevens:" + message.data);
client.post (' statussen/update', {status: "Hallo, de temperatuur is"+ message.temp+"° C, de vochtigheid van de grond is"+ message.hum+"% en de helderheid is"+ message.lum+"%}, functie (fout, tweet, reactie) {}
if(Error) console.log(error);
console.log(Tweet); Tweet lichaam.
console.log(Response); Ruwe response-object. });
Next(); }); };
U kunt het publiceren van uw app op Heroku om het te testen!