我想将JSON从服务器上完成的API请求发送到客户端,以便将该信息放入Google地图中。
请求正在运行。我正在获取一个JSON对象,我可以将其打印到控制台,但如果我尝试将该对象用作参数或将其保存到变量并打印它返回'undefined'。
这些事情中的任何一个都可能吗?这是服务器运行请求的地方:
router.get("/location/:latitude/:longitude", function(req, res) {
yelp(req.params.latitude, req.params.longitude);
res.redirect("/find");
});
这是我的职责:
var request_yelp = function(latitude, longitude) {
var yelp = new Yelp({
consumer_key: consumer_key,
consumer_secret: consumer_secret,
token: token,
token_secret: token_secret,
});
yelp.search({
term: 'food',
ll: latitude + ',' + longitude
})
.then(function (data) {
/* Convert data to JSON string */
var str = JSON.stringify(data);
/* Parse JSON string to JSON Object */
var obj = JSON.parse(str).businesses;
return obj;
}) .catch(function (err) {
console.error(err);
});
当服务器运行代码时,我尝试过这样的事情:
var json = yelp(req.params.latitude, req.params.longitude);
我还试过创建一个全局变量并在将其调用到函数之前将其分配给它。并尝试从函数中返回'data','str'和'obj'变量。还有一些其他的东西,但我总是得到相同的“未定义”响应。
我试图将对象发送到的功能只是在客户端运行的Google Map的createMarker函数。我没有太多代码可以显示,因为我无法检索JSON以开始使用它。
答案 0 :(得分:0)
尝试创建一个全局对象,然后将数据分配给它:
var json = {} || new Object();
json = yelp(req.params.latitude, req.params.longitude);
答案 1 :(得分:0)
使用以下jquery函数来读取json响应。
$.each(JSON VAR, function(key, values) {
alert('key=' + key + ', val=' + values);
});