[英]Serving New Data With Node.js
可能已经有人回答了这个问题,但是我找不到它。
假设我有一个Node.js网页正在执行一些耗时的API调用和计算:
var request = require('request'),
Promise = require('es6-promise').Promise,
is_open = require('./is_open');
// Fetch the name of every eatery
var api_url = 'url of some api';
request(api_url, function (error, response, body) {
if (error) {
console.log(error);
} else if (!error && response.statusCode == 200) {
// Good to go!
var results = JSON.parse(body).events;
results.(function (result) {
// This line makes its own set of API calls
is_open(result
.then(function (output) {
console.log(output);
if (output == false) {
console.log('CLOSED\n');
} else {
console.log(output);
console.log();
}
})
.catch(console.error);
});
} else {
console.log('Returned an unknown error.');
console.log(error);
console.log(response);
console.log(body);
}
});
(我尚未创建实际的Web服务器,我只是通过命令行在本地运行该应用程序。)
我希望Web服务器首先为每个用户提供加载页面。 然后,一旦API调用完成并且数据准备就绪,它就应该在新网页中将该数据发送给同一用户。
我认为存在问题的原因是,要投放网页,您必须以:
res.end();
因此,终止与该特定用户的连接。
谢谢您的帮助!
您必须在概念上将静态内容与动态内容分开(稍后,您将通过nginx或apache提供静态内容,仅将动态内容保留给节点)
解决您的“问题”的最佳方法是使第一个网页在加载后通过AJAX询问数据。 理想情况下,您的节点应用程序将从首页返回JSON到ajax查询,并且页面上的js将格式化创建DOM节点的结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.