操纵数据从服务器到html文件(使用Node.js和Express)



这个问题遵循这个问题:通过Express从Node.js获取数据。

我有一个服务器与Node.js和我使用Express来构建一个web应用程序。我的服务器已经能够使用一个函数(rss_interrodb)从数据库构建一个数组。现在我想用这个数组在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 ?我要在html文件中的"用serverData做点什么"部分写什么?

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标签。

接下来,你将在node中设置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

最新更新