0
当使用express方法res.json(items_json)返回JSON对象items_json时,我遇到了问题。在下面的代码中,在位置#1调用快速方法res.json(items_json)时,该函数可以很好地工作。然而,当res.json(items_json)被称为在位置#2,而不是1号,返回的JSON对象为空:数据未被添加到匿名函数内的JSON对象
{
"example_key_object": []
}
我想有位置#2,所以我res.json(items_json)可以添加一个循环。为什么在位置2时JSON响应为空,但在位置1时正常工作? (上下文下面的代码:res.json(items_json)是从来没有在这两个位置#1 &#2)
app.get('/example_apiurl', function(req, res) {
var items_json = {}
var key_object = 'example_key_object';
items_json[example_key_object] = [];
var item_str;
var data;
var url = "example.com";
request(url, function(error, response, html){
if(!error){
var $ = cheerio.load(html);
/*
some irreverent logic to get var items_clean_st
*/
item_str = items_clean_st.substring(x,y);
data = {
locationID: 2,
item: item_str
};
items_json[key_object].push(data);
res.json(items_json) //POSITION #1 //returns correctly!
}
})
res.json(items_json) //POSITION #2 //empty :(
}
})