2016-11-26 34 views
0

创建公共变量你好这是我的NodeJS 命令行获取当前位置的天气。的NodeJS

// Index.js 
// Modules 
const program = require('commander'); 
const clear = require('clear'); 
const chalk = require('chalk'); 
const request = require('ajax-request'); 
const fs = require('fs'); 
const json = require('read-data').json; 
const jsonfile = require('jsonfile') 

// Http Request to freegeoi.net 
request({ 
    url: "http://freegeoip.net/json/", 
    method: "GET", 
    data: { 
    format: "json" 
    }, 
}, function(err, res, body) { 

    // Parse the result 
    const data = JSON.parse(body); 

    // Extracting coordinates from data 
    let lat = data.latitude; 
    let long = data.longitude; 
}); 

// forecase key 
const key = "***********************"; 
// full forecast api url 
const url = `https://api.darksky.net/forecast/${key}/${lat},${long}`; 

问题是这样的:我想变出要求功能LAT

我该怎么做?

回答

3

你可以改变let lat = ...var lat = ...因为let范围到最近{}块,其中为var全球范围 - 但这是一般不好的做法。

一个更好的选择是调用另一个函数在请求回调结束:

function processLatLong(lat, long) { 
    //do something with lat long 
} 

request({ 
    url: "http://freegeoip.net/json/", 
    method: "GET", 
    data: { 
    format: "json" 
    }, 
}, function(err, res, body) { 

    // Parse the result 
    const data = JSON.parse(body); 

    // Extracting coordinates from data 
    let lat = data.latitude; 
    let long = data.longitude; 
    processLatLong(lat, long); 
});