node.js使用请求模块返回文件的内容

时间:2018-08-02 00:16:34

标签: json node.js request

我正在学习如何在Node.js中读取json数据(针对walkscore.com api),并找到了请求模块。我知道如何使其在“请求”块内执行操作。但是,我在函数中调用它,并且我希望该函数返回json数据。我如何能够简单地在函数内部但在请求块之外访问“ body”变量?

var request = require("request")

function loadWalkScore(lat, lon, address, name, state) {
   var address = encodeURI(address)
   var url = "http://api.walkscore.com/score?format=json&address=" + address
   url += "&lat=" + lat + "&lon=" + lon + "&wsapikey=" + wsapikey

   request(url, { json: true }, (err, res, body) => {
      if (err) { return console.log(err); }
      // somehow make loadWalkScore() function return <body>
   });
}

1 个答案:

答案 0 :(得分:0)

您可能希望const SUPPORTED_PHP_VERSIONS接受一个回调参数,并在您的请求回调中调用它。在编写Node代码时,您的函数很少实际返回您所要求的数据,它们会接受(并最终调用)您提供的回调,或者返回Promises(最终会使用所请求的数据进行解析)。这是处理HTTP请求等异步操作的方法。

可能类似于:

trigger('wordUpdated', [
  transition("* => *", group([
    query(':enter', [
      style({ opacity: 0, transform: 'translateY(40%)' }),
      animate('.5s ease-out', style({ opacity: 1, transform: 'translateY(0%)' }))
    ], { optional: true }),
    query(':leave', [
      style({ opacity: 1, transform: 'translateY(0%)' }),
      animate('.5s ease-out', style({ opacity: 0, transform: 'translateY(-40%)' }))
    ], { optional: true })
  ]))
])

然后将其命名为:

  I like <span class="block" [@wordUpdated]="word">
    <span class="span" *ngFor="let word of [ word ]">
      {{ word }}
    </span>
  </span>