Sigfox talar växten (6 / 9 steg)
Steg 6: Backend använder NodeJS
Innan du konfigurerar callbacks i bakändan Sigfox, måste vi ställa in vår egen server att motta data.
För att göra det, kommer vi att använda NodeJS. I själva verket kommer vi att använda LoopBack ram för att göra det ännu enklare.
Vad är Loopback?
På deras hemsida sägs det:
LoopBack är en mycket utbyggbar, öppen källkod Node.js ram.
Du kan:
- Snabbt skapa dynamiska end-to-end resten API: er.
- Ansluta enheter och webbläsare till data och tjänster.
- Använd Android, iOS och AngularJS SDKs enkelt skapa client apps. Tilläggskomponenter för push, filhantering, 3: e part login och geolocation.
- Använd StrongLoop Arc visuellt redigera, distribuera, och övervaka LoopBack apps. StrongLoop API Gateway agerar mellanhand mellan API konsumenter (klienter) och API leverantörer att externalize, skydda och hantera API: er.
- Körs lokalt eller i molnet
Vad du bör komma ihåg är att du kan skapa en REST API på bara några minuter :)
Källkod:
Du kan hämta direkt källkod på Github
Installera Loopback med npm:
$ npm installera -g strongloop
Skapa din app:
$ slc loopback
[?] Vad är namnet på din ansökan? sigfox-prata-växt-backend
Hej-värld / info ändra arbetskatalogen till Hej-världen jag är allt gjort. Rinnande npm install för att installera beroenden som krävs. ...
Kör det visuella gränssnittet och skapa modeller:
$ slc arc
Gå sedan till kompositören och nya modell "enheter". Fyll egenskaperna som visas i bilden. Upprepa detta för att skapa meddelandet (och randomTwit modeller så småningom om du vill anpassa twits).
Nu kan du köra servern genom att klicka på "play"-knappen i övre högra hörnet.
Observera att jag har ändrat porten för att vara 3001 på min dator eftersom min port 3000 är upptagen.
Gå till/http://localhost:3000/explorer/att se din API slutpunkter.
Du kan också köra programmet från en terminal genom att skriva:
$ nod.
Lagra data i en databas:
Om du vill lagra data någonstans, kan du lägga till en datakälla. Loopback ram stöd MySQL, PostgreSQL, MongoDB och många andra. Rätt nu, dina data kommer att vara lös om du stoppa eller starta om den.
Du kan även bestämma att lagra data i en json fil. Till gör så, på projektets rot, gå till /server/datasource.json och kopiera detta:
{"db": {"namn": "db", "kontakt": "minne", "fil": "mydata.json"}}
Skapa Twitter app:
Gå till https://apps.twitter.com/ och skapa en app.
Gå till nycklar och åtkomst-token för att få dina inloggningsuppgifter.
Skicka twits:
Installera twitter nod modul:
$ npm installera twitter
Gå till /common/models/message.js att konfigurera twits skickas när nytt meddelande skapas.
Ersätta koden med följande:
var Twitter = require('twitter');
module.exports = function(Message) {
Använder miljövariablerna i produktion var klienten = nya 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,});
Tillgängliga metoder:
client.get (väg, params, callback);
client.post (väg, params, callback);
client.Stream (väg, params, callback);
Message.afterRemote ('skapa', funktion (ctx, meddelande, nästa) {console.log ("> testa afterRemote funktion '); console.log (" tid: "+ message.time); console.log (" enhets-id: "+ message.device); console.log (" data: "+ message.data);
client.post (' status/uppdatering', {status: "Hej, temperaturen är"+ message.temp+"° C, marken fukt är"+ message.hum+"% och ljusstyrkan är"+ message.lum+"%}, funktion (fel, tweet, svar) {
IF(Error) console.log(error);
Console.log(tweet); Tweet kropp.
Console.log(Response); RAW svar objekt. });
Next(); }); };
Du kan publicera appen på Heroku att testa det!