Paso 6: Espalda final con NodeJS
Antes de configurar las devoluciones de llamadas en el back-end Sigfox, necesitamos configurar nuestro propio servidor para recibir los datos.
Para ello, usaremos NodeJS. De hecho, utilizaremos LoopBack marco para hacerlo aún más fácil.
¿Qué es bucle?
En su Página Web se dice:
Bucle es un marco de Node.js altamente extensible, de código abierto.
Puedes:
- Rápidamente crear dinámica end-to-end resto API.
- Conectar los dispositivos y navegadores a datos y servicios.
- Use Android, iOS y AngularJS SDK para crear aplicaciones cliente. Componentes adicionales para empuje, administración de archivos, Inicio de sesión de 3rd-party y geolocalización.
- Utilice arco StrongLoop visualmente editar, desplegar y supervisar aplicaciones de bucle. StrongLoop API Gateway actúa de intermediario entre consumidores (clientes) de la API y los proveedores de API para externalizar, asegurar y administrar APIs.
- Funciona en locales o en la nube
Lo que debes recordar es que usted puede crear una API REST en pocos minutos :)
Código fuente:
Usted puede descargar directamente el código fuente en Github
Instalar el bucle invertido mediante MNP:
$ MNP instalar strongloop -g
Crear la aplicación:
$ slc bucle
[?] ¿Cuál es el nombre de tu aplicación? sigfox-hablar-planta-backend
crear el Hola mundo / información cambiar el directorio de trabajo de Hola mundo que estoy hecho. Marcha MNP instalar para instalar las dependencias necesarias. ...
Ejecutar la interfaz visual y crear los modelos:
arco de slc $
Luego ir al compositor y añadir un nuevo modelo "dispositivo". Llenar las propiedades como se muestra en la imagen. Repetir este proceso para crear el mensaje (randomTwit modelos y eventualmente, si desea personalizar a los twits).
Ahora, puede ejecutar el servidor haciendo clic en el botón de "play" en la esquina superior derecha.
Tenga en cuenta que he cambiado el puerto para ser 3001 en mi ordenador porque mi puerto 3000 está ocupado.
Ir a/http://localhost:3000/explorador para ver sus puntos de final de la API.
También puede ejecutar la aplicación desde un terminal escribiendo:
nodo de $.
Los datos se almacenan en una base de datos:
Si desea almacenar los datos en algún lugar, puede Agregar un origen de datos. Loopback marco soporte MySQL, PostgreSQL, MongoDB y muchos otros. Derecho, sus datos estarán flojos si detener el servidor o reinicie.
Incluso puede decidir almacenar los datos en un archivo json. Para ello, a raíz del proyecto, vaya a /server/datasource.json y copiar esto:
{"db": {"name": "db", "conector": "la memoria", "archivo": "mydata.json"}}
Crear app de Twitter:
Ir a https://apps.twitter.com/ y crear una aplicación.
Ir a claves y Tokens de acceso para obtener sus credenciales.
Envío de twits:
Instalar módulo de nodo de twitter:
$ MNP instalar twitter
Vaya a /common/models/message.js para configurar twits que enviarán al crea nuevo mensaje.
Reemplace el código por el siguiente:
Twitter de var = require('twitter');
Module.Exports = {function(Message)}
Utilice las variables de entorno de cliente de producción var = nuevo 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étodos disponibles:
Client.get (ruta, params, callback);
Client.post (ruta, params, callback);
Client.Stream (ruta, params, callback);
Message.afterRemote ('crear', la función (ctx, mensaje, siguiente) {console.log ('> afterRemote función de prueba '); console.log (' tiempo: ' + message.time); console.log (' id de dispositivo: ' + message.device); console.log (' datos: ' + message.data);
Client.post (' Estados/actualizar', {estado: "Hola, la temperatura es"+ message.temp+"° C, la humedad del suelo es"+ message.hum+"% y el brillo es"+ message.lum+"%}, {} de la función (error, tweet, respuesta)
console.log(error) de if(error);
Console.log(Tweet); Cuerpo de Tweet.
Console.log(Response); Objeto de respuesta cruda. });
Next(); }); };
Puedes publicar tu aplicación en Heroku para probarlo!