Node + Express,在页面加载时将数组传递给客户端?

时间:2015-10-28 17:25:30

标签: javascript node.js express

我正在使用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()

}

1 个答案:

答案 0 :(得分:1)

  

如何将数据作为客户端可访问的变量获取   页面加载,当服务器正在完成所有工作?你一定要吗   从客户端拨打冗余电话并获取数据的“副本”?    - 六月三月

如果您不想在页面加载后进行AJAX调用以获取数据,则可以将其与脚本标记内的其余页面一起发送。不确定你正在使用哪个模板引擎,所以以下是sudo代码(可能是Jade,我不知道)。在您的模板中执行以下操作:

script var data = JSON.stringify(stuff); // <- horrible variable name btw

如果您可以在模板中成功创建脚本标记,并使用要传递给客户端的数据初始化变量,则不必再次调用服务器。