我正在使用Node + Express。在页面加载时,应用程序调用远程数据库,获取数据并将其发送到车把模板。这一切都在服务器端完成。但是我希望能够让这个相同的JSON数据可供客户端进行交互。我怎么做?
示例,服务器显示十个记录的表。我希望客户端能够单击一条记录并获取该记录的详细信息视图。感谢。
以下是代码:
app.get('/', function(req, res) {
getDataFromDatabase(function(data) {
data = JSON.parse(data);
res.render('index', {
stuff: data
});
});
});
function getDataFromDatabase(callback){
var options = {
hostname: this.hostname,
path: this.path,
port: 80,
method: 'GET'
}
http.request(url, function(res) {
var data = '';
res.on('data', function(chunk) {
data += chunk;
}).on('end', function() {
callback(data);
}).on('error', function() {
console.log("error");
})
}).end()
}
答案 0 :(得分:1)
如何将数据作为客户端可访问的变量获取 页面加载,当服务器正在完成所有工作?你一定要吗 从客户端拨打冗余电话并获取数据的“副本”? - 六月三月
如果您不想在页面加载后进行AJAX调用以获取数据,则可以将其与脚本标记内的其余页面一起发送。不确定你正在使用哪个模板引擎,所以以下是sudo代码(可能是Jade,我不知道)。在您的模板中执行以下操作:
script var data = JSON.stringify(stuff); // <- horrible variable name btw
如果您可以在模板中成功创建脚本标记,并使用要传递给客户端的数据初始化变量,则不必再次调用服务器。