【问题标题】:Manipulate data got from server into html file (using Node.js and Express)将从服务器获取的数据处理成 html 文件(使用 Node.js 和 Express)
【发布时间】:2014-03-21 21:37:58
【问题描述】:

这个问题跟在这个问题后面: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是吗?我必须在 html 文件的“使用 serverData 做某事”部分写什么?

【问题讨论】:

    标签: javascript html node.js express


    【解决方案1】:

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 2017-12-26
      相关资源
      最近更新 更多