Bonjour lostsoul,
plusieurs problèmes dans ton scripts:
	
	| 12
 
 | module.exports.result = result;
module.exports.text = text; | 
 module.exports ne peut être appeler qu'une seul fois, et ne sert pas à renvoyer un résultat de fonction,  mais à exporter la fonction elle même pour que tu puisse l'appeler dans d'autres fichiers via un require.
	
	| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 
 |  
 
// toto.js
function toto (callback) {
   return callback(null, 'j\'ai une blague');
}
 
module.exports = toto;
 
// tata.js
var toto = require('./toto.js');
 
toto(function(err, res) {
   if (err) throw err;
   console.log(res);
}); | 
 je t'invite d'ailleurs à chercher un peu sur la différence entre module.exports et exports.foo, sujet traité mille fois sur le net (et la flemme de tout réécrire  )
 ) 
autre problème conceptuel, tu essaye de renvoyer  le resultat d'un callback en dehors de celui ci. je pense à 'result' et 'text' dans request. Tes resultats, tu doit en faire quelque chose dans :
	
	function (error, response, resp) { /* ici, car en dehors ils n'existent pas */ }
 soit simplement l'afficher dans la console comme tu le fais, soit renvoyer ces valeurs via un callback
	
	| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 
 | 
function openWeatherMap (callback) {
  var querystring = require('querystring');
  var request     = require("request");
  var result = '';
  var text = '';
 
  var openWeatherMapQuery = querystring.stringify({
    q: "Bourges, France",
    lang: "fr",
    units: "metric"
  });
  var openWeatherMapURL = "http://api.openweathermap.org/data/2.5/weather?"+ openWeatherMapQuery;
 
  request({
    url: openWeatherMapURL,
    json: true // Nous recevrons un JSON
  }, function (error, response, resp) {
   if (error) return callback(err);
 
    if (!error && response.statusCode === 200) {
 
      var text = "Bulletin météo : "
      text += resp.weather[0].description
      text += ". Il fait actuellement "+ Math.round(resp.main.temp) +" degrés."
 
      var result = querystring.stringify({
       tl: "fr",
        q:  text,
        ie: "UTF-8"
      });
 
      console.log("Météo construite :");
      console.log(text);
      console.log(resp.main.temp);
      callback(null, text, resp.main.temp);
 
    } else {
 
      console.log("Une erreur est survenue.");
      callback(new Error("Une erreur est survenue."));
    }
  })
});
 
module.exports = openWeatherMap; | 
 voila en trés gros...
	
		
			
			
				Est-ce qu'un npm serait mieux ?
			
		
 
	 
 lapin compris!
Clairement, tu débute avec node.js, c'est pourquoi je t'invite à ne pas te décourager et à revoir la notion de callback et d'asynchronicité.
						
					
Partager