javascript - 如何从 Node.js Express 服务器将 JSON 数据返回到 Riot.js?

标签 javascript node.js express riot.js

我正在开发一个 Web 应用程序,客户端使用 Riot.js,服务器端使用 Node.js Express。 Riot.js 可以挂载 JSON 数据并可用于渲染 HTML。实际上我在服务器端有一些 JSON 数据,并且想将它们与 Riot.js 一起使用。

目前我的 Express 服务器的代码非常简单。

  var express = require('express'),                                                                                             
      serveIndex = require('serve-index'),                                                                                      
      app = express();                                                                                                          

  app.use(express.static(__dirname + '/public'));                                                                               
  app.use(serveIndex(__dirname + '/public'));                                                                                   
  app.listen(3000);  

我认为 HTML 模板对我的问题有帮助。但我找不到 Riot.js 的答案,如何使用和渲染服务器中的数据?

如果数据位于客户端,我知道如何装载数据,如下所示:

    <script>                                                                                                                   
      riot.mount('my_hoge', {                                                                                                
        data: [                                                                                                                
          { name: 'A', url: 'xxxx'},                                                                                           
          { name: 'B', url: 'yyy', isActive: true},                                                                          
          { name: 'C', url: 'zzzz'}                                                                                           
        ]                                                                                                                            })                                                                                                                       
   </script>   

环境

  • Node.js v5.3.0
  • express v4.13.3

最佳答案

您可以使用 AJAX 将 JSON 数据加载到 Riot.js 元素中,如下所示:

var url = "http://yourserver:3000/";
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        var data = JSON.parse(xmlhttp.responseText);
        riot.mount('my_hoge', { data: data });
    }
}
xmlhttp.open("GET", url, true);
xmlhttp.send();

关于javascript - 如何从 Node.js Express 服务器将 JSON 数据返回到 Riot.js?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34480297/

相关文章:

javascript - 提高 Javascript 性能的最经济的方法(通过取代 jQuery)

android - NPM 缓存步骤在 Azure DevOps 中不起作用

Javascript:如何从索引为 0 的数组中拼接一个值?

javascript - JS : String. 原型(prototype).toUnderscore()

node.js - HTTP 发送后请求失败

javascript - 如何在 lodash forEach 中使用 Promise all 并解决它并执行 res.send(data)

javascript - 希望 Passport 存储 req.client 而不是 req.user 以实现承载策略

javascript - 在电子邮件正文中嵌入图像 nodemailer nodejs

javascript - 如何在 npm 包 commandLineArgs 中将字符串输入为 Number

node.js - MongoDB 卡在 clientcursormon 上(等待端口 27017 上的连接)