处理从服务器到html文件的数据(使用Node.js和Express)

时间:2014-03-21 21:37:59

标签: javascript html node.js express

这个问题遵循以下问题:Get data from Node.js via Express

我有一台带有Node.js的服务器,我使用Express来构建一个Web应用程序。我的服务器已经能够使用函数(rss_interrogDB)从数据库构建数组。现在我想使用这个数组在html页面中显示一个列表。我的页面html中已经有一个脚本可以创建给定数组的列表。

但我的问题是我不知道允许html文件在此函数中使用此数组...

我的服务器代码上有这个:

 app.get('/', function(req, res) { 
 rss_interrogDB(function(serverData) {
    res.send(serverData);             
 });
 });

这是我的html文件:

 $.get('/').success(function(serverData) {
    // TO DO something with serverData
 }).error(function(serverData, status) {
    // error handling
 });

但是,这样做,html直接显示数组,虽然我想用它来构建html代码......是res.send(serverData)中的pb吗?我需要写什么"用serverData做什么"部分在html文件中?

1 个答案:

答案 0 :(得分:2)

EJS http://embeddedjs.com/是一个很好的方法。你的帖子没有显示你想要使用的数组,所以这里是EJS主页的例子。假设您有以下对象:

var myObject = { title:'Cleaning Supplies', supplies:['mop','broom','duster'] }

然后你可以编写一个模板文件,基本上是HTML,JavaScript代码嵌入到标签中(类似于PHP的工作方式),循环遍历你的数组:

<ul>
<% for(var i=0; i<supplies.length; i++) {%>
   <li><%= supplies[i] %></li>
<% } %>
</ul>

请注意,没有script标记。

接下来,您将在节点中设置ejs模块并告诉它使用您的对象呈现视图:

app.get('/my/url', function(req, res, next){
  res.render('template.ejs', myObject );
});

这将生成这样的html,并将其发送到浏览器:

<ul>
   <li>mop</li>
   <li>broom</li>
   <li>duster</li>
</ul>

以下是一个更详细的示例:http://superbigtree.tumblr.com/post/62759231807/a-simple-example-application-using-express-ejs-and