NodeJS …保存JSON到一个variables

我是NodeJS的一个新手,但是我环顾四周,似乎无法find解决我的问题。 我相信这是简单的,但在此先感谢您可以给我所有的帮助!

我试图通过NodeJS做一个简单的JSON刮刀。 我所需要的是将JSON存储到一个variables。 问题是,我正在使用Require,他们的例子只是将其logging到控制台。 我已经尝试添加一个variables后,它login到控制台,但我只是变得不确定。 这里是我的代码下面,这是相当简单至今:)

// var jsonVariable; Doesn't work, shown as a test function getJSON(url){ var request = require("request") request({ url: url, json: true }, function (error, response, body) { if (!error && response.statusCode === 200) { console.log(body) // Print the json response //return body; This doesn't work, nor does making a global variable called json and assigning it here. Any ideas? //jsonVariable = body; // This also doesn't work, returning undefined even after I've called the function with valid JSON } }) } 

再一次,非常感谢你给我的任何帮助:)

       

网上收集的解决方案 "NodeJS …保存JSON到一个variables"

问题是request方法是asynchronous的,但是你试图同步返回一个结果。 你需要做一个同步请求(对于你正在使用的request包来说不可能),或者当请求成功响应时传递一个callback函数来调用。 例如:

 var request = require("request") function getJSON(url, callback) { request({ url: url, json: true }, function (error, response, body) { if (!error && response.statusCode === 200) { callback(body); } }); } getJSON('http://example.com/foo.json', function (body) { console.log('we have the body!', body); }); 

如果使用“返回主体”,它返回到哪里? 该函数被调用为request()函数的参数。 您也无法在匿名函数中定义variables,因为您无法在该范围之外访问该variables。

你需要做的是在function getJSON()之外定义一个variables,然后将主体保存到该variables中。

例如,

 var result; function getJSON(url){ var request = require("request") request({ url: url, json: true }, function (error, response, body) { if (!error && response.statusCode === 200) { result = body; } }); }