Espero en unos días publicar un tutorial más completo sobre el uso de NodeJS en Intel Galileo.
Por el momento les presento este código de prueba.
var request = require('request'); //Referencia a la librería "request" de nodejs var i = 0; //variable para contar var timer = {}; test(); function test(){ i++; var busqueda='costa rica makers'; var url= 'http://www.google.com/'; url += '?q=' + busqueda; url += '&veces=' + i; //un parametro adicional cualquiera request(url , function (error, response, body){ if (!error && response.statusCode == 200) { //EXITO console.log(body); } else { //ERROR console.log(response); console.log(error); } timer = setTimeout(test,2000); //VOLVER A LLAMAR EN 2 SEGUNDOS }); }
Configurando nodeJS y la librería Request
Para que el script anterior funcione, la libreria request debe estar disponible. Digamos que creamos una carpeta particular para la prueba: ~/nodejs_test01 ( o lo que es lo mismo /home/root/nodejs_test01/)
Para esto es necesario instalar la libreria usando la utilidad npm, pero para esto es necesario tambien que el Galileo tenga la fecha y hora correctas.
Entonces, ejecute estos pasos en el linux del Galileo:
date 1029114114 El comando anterior, configura la fecha del galileo a OCT-29-2014, a las 11:41 de la mañana. Si su fecha/hora fuera el primero de diciembre de 2014 a las 3:30pm podria ejecutar esto: date 1201153014 donde los cuatro primeros caracteres son DIC-01, los siguientes cuatro caracteres son 15:30, y el ultimo juego de dos caracteres es el año 2014. npm install request Esta operación puede tardar varios minutos, básicamente descarga la libreria del repositorio de NPM wget https://costaricamakers.com/wp-content/uploads/2014/10/test_request.js Esto descarga el programa test_request.js en la carpeta seleccionada.
Ejecutando el programa
Para ejecutar el programa, primero almacénelo en la carpeta de pruebas que hicimos «~/nodejs_test01/request_test.js»
Luego ejecute el siguiente código:
node request_test.js
Listo, el programa empezará a llamar al sitio web de google con la pregunta «costa rica makers»
Para detener el programa utilice las teclas CTRL+C
14,958 total views, 1 views today
Comentarios
Hola!, Tengo una consulta, ya que me estoy dando de golpes con la misma librería y quizás sea algo muy simple y mas que nada un tema conceptual. Pero estoy intentando hacer la invocación via get de una URL y la respuesta (body) almacenarlo en una variable pero no he tenido éxito, todos los ejemplos que encuentro lo tiran por consola y yo necesito lo anterior, depositar el resultado de la invocación en una variable. Puedes ayudarme?
Hola Rodrigo, claro con gusto. Voy a hacer algunas pruebas para luego ampliar esta respuesta. Básicamente el resultado de una invocación WEB debería estar incluido en la variable response de la linea 12 del ejemplo. ¿estás usando NODEJS? ¿Estás usando Intel Edison o Galileo?
uso NodeJS, la verdad iniciándome en NodeJS antes había trabajado con Javascript Server Side y el motor netscape y posterior a eso con JS Client Side v1.0 de Netscape hasta los día de hoy. Pero creo que tengo mas que nada un enrredo con Node JS, no se porque me complique tanto, quizas solo falta de sueño… Por cierto conoces de algún RAID para NodeJS? donde puedas depurar el código.
Jose, Creo que descubrí la razón de mi mareo y es el asyncronismo jajaja, pero mira esto era lo que intentaba hacer (servirá a alguien mas, claro esta desordenado…) var request = require(‘request’); var util = require(«util»); // Set the headers var headers = { ‘User-Agent’: ‘Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5’, ‘Accept-Language’: ‘es-ES,es;q=0.5’ } // Configure the request var options = { url: », method: ‘GET’, headers: headers, qs: {»: ‘1’}, debug:true } var retInfo=»»; function setRespuesta(data){ retInfo=data; } fn = function(error, response, body) { if (!error && response.statusCode == 200) { this.responseBody = body; setRespuesta(body); } } var myReq = request(options, fn); timer=setTimeout(function (){ console.log(«—————————————————————«); console.log(retInfo); clearTimeout(timer); },5000);
Conoces algún RAID, IDE un ambiente grafico con depurador que pueda ser usado con Node JS porque bloc de notas no rula mucho 😛
Excelente. Si en efecto, el asincronismo muerde a veces… 🙂 … y si, está desordenado ja ja Yo personalmente no uso mucho javascript step-by-step debugging. Si uso Netbeans por el intelisense y otras virtudes. Saludos
has usado JSFiddle? (http://jsfiddle.net/) Me parece una buena forma de compartir código y probarlo de una.
No lo he utilizado, lo conozco si, pero mas que nada busco un debugger porque armare una aplicacion bastante compleja y requerire debugging, y no hace mucho he terminado un proyecto con GWT y quede enfermo con los print al log para revisar codigo.