我在node.js中有一个程序。它连接到提供数据的JSON文件的Web服务,但是该文件仅显示有限数量的数据(每个请求500条记录),从请求中的index参数的值开始。“ lastentry”返回当前数据页中最后一条记录的ID。Lastpage是一个布尔值,指示何时到达最后一页。
第一个请求如下所示:http : //example.com/data.json?index=0
我构建此函数来获取最后一条记录的ID。它会自我调用,直到最后一页为真。根据我从JSON读取的值,index变量随每个请求正确增加,但是即使“ url”是根据index变量构建的,它也不会改变并且始终保持为0。这是为什么?
var lastpage = false;
var index = 0;
var url = "http://example.com/data.json?index=" + index;
function getLastEntry() {
request(url, function (err, resp, body) {
if (err || resp.statusCode != 200) {
// error handling
} else {
var data = JSON.parse(body);
index = data.lastentry;
lastpage = data.lastpage;
if (lastpage == false) {
getLastEntry();
}
}
}
}
getLastEntry();
那不是JavaScript的工作方式。一旦初始化了变量“ url”,初始化表达式将不再被计算。但是,只要将计算移到那里,就可以安排每次调用“请求”时都发生:
var url = "http://example.com/data.json?index=";
function getLastEntry() {
request(url + index, function (err, resp, body) {
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句