[英]Dynamically generate url and page content from multiple JSON files using node.js
我试图使用node.js express生成多个URL /页面。 我在一个JSON文件中存储了多个(目前有10个,但数量可能会更改)URL,而我还有另外10个(将要更改)JSON文件,分别包含每个URL的信息。
目前,我正在使用request-json从本地服务器获取JSON文件。 但是,我的代码仅允许我在循环中创建最后一个URL及其内容
client.get("url1", function(error, response, body){
for (var i=0; i<10; i++){
var urlName = body.row[i];
client.get("url2" + urlName, function(error, response, body) {
app.get('/'+ urlName, function (req, res){
res.send(body);
})
})
}
});
我认为这是因为for
循环中存在async
调用。 您是说在async
函数app.get
使用i
或urlName
当前值。
而app.get
将被调用时client.get
将结束。
因此,当它将被调用时,您的for
循环将完成,因此它将以i/urlName
最新值进行调用,这将是您的最后一行i=10
。 为此。
尝试这个:-
var performCurrentOperation = function(i,body){
var urlName = body.row[i];
client.get("url2" + urlName, function(error, response, body) {
app.get('/'+ urlName, function (req, res){
res.send(body);
});
});
}
client.get("url1", function(error, response, body){
for (var i=0; i<10; i++){
performCurrentOperation(i,body);
}
});
基本上在这里,我正在用那个值i
绑定一个函数,因此它应该对i
当前值执行操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.