如何从URL读取JSON文件并将其分配给NodeJS中的全局变量?

时间:2017-05-17 13:55:59

标签: json node.js

<?php
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':value', $value);

我找到了从URL获取JSON文件的方法,但是我将它分配给全局变量有点困难。在这种情况下,我该如何处理var url = 'https://myurl.com/file.json'; request(url, function (error, response, body) { if (!error && response.statusCode == 200) { var jsonObject = JSON.parse(body); console.log(jsonObject); } });

2 个答案:

答案 0 :(得分:1)

从技术上讲,要使其成为全局变量,您只需在回调函数之外定义它。

var url = 'https://myurl.com/file.json';
var jsonObject;
request(url, function (error, response, body) {
  if (!error && response.statusCode == 200) {
     jsonObject = JSON.parse(body);
     console.log(jsonObject);
  }
});

然而,根据我在这里看到的内容,我认为这不会解决你想要解决的任何问题。原因是请求的回调是异步处理的。因此,即使您将其分配给全局变量,也不会在以后的其他代码中访问它。

var url = 'https://myurl.com/file.json';
request(url, function (error, response, body) {
  if (!error && response.statusCode == 200) {
     var jsonObject = JSON.parse(body);

     // Rest of your application that needs access to jsonObject can do here...
     // You can also pass it on to another function by running something like `processResponse( jsonObject )`;
  }
});

答案 1 :(得分:0)

这是你应该怎么做的。

var jsonObject;
var url = 'https://myurl.com/file.json';
request(url, function (error, response, body) {
  if (!error && response.statusCode == 200) {
     jsonObject = JSON.parse(body);
     console.log(jsonObject);
  }
});