我在node.js中有一个程序。它连接到提供带有数据的JSON文件的Web服务,但该文件仅显示有限数量的数据(每个请求500条记录),从请求中的index参数值开始。 " lastentry"返回当前数据页面中最后一条记录的ID。 Lastpage是一个布尔值,指示何时到达最后一页。
第一个请求如下所示: http://example.com/data.json?index=0
我构建此函数以获取最后一条记录的ID。它自称为lastpage为真。根据我从JSON读取的值,索引变量随每个请求正确增加,但是" url"即使它是从索引变量构建的,也不会改变并始终保持为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();
答案 0 :(得分:2)
这不是JavaScript的工作方式。一旦你初始化了变量" url",就不会再次计算初始化表达式。但是,您可以安排在每次拨打电话时发生#34;请求"只需在那里移动计算:
var url = "http://example.com/data.json?index=";
function getLastEntry() {
request(url + index, function (err, resp, body) {