Javascript 如何从Node.js express服务器将JSON数据返回到Riot.js?

Javascript 如何从Node.js express服务器将JSON数据返回到Riot.js?,javascript,node.js,express,riot.js,Javascript,Node.js,Express,Riot.js,我正在开发一个web应用程序,客户端使用Riot.js,服务器端使用Node.js express。 js可以装载JSON数据,并可用于呈现HTML。实际上,我在服务器端有一些JSON数据,我想将它们与Riot.js一起使用 目前,我的express服务器的代码非常简单 var express = require('express'),

我正在开发一个web应用程序,客户端使用Riot.js,服务器端使用Node.js express。 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>   

暴动。山('my_hoge',{
数据:[
{name:'A',url:'xxxx'},
{name:'B',url:'yyy',isActive:true},
{name:'C',url:'zzzz'}
]                                                                                                                            })                                                                                                                       
环境

  • 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();

在他们的一个示例中,他们使用API从服务器获取数据

window.fetch('http://api.fixer.io/latest?base=USD')
  .then(function(response) { return response.json() })
  .then(function(data) {
    var rates = Object.keys(data.rates)
      .map(function (key) { return { title: key, price: data.rates[key] }})
      .sort(function(a, b) { return a.price - b.price })
    self.update({ rates: rates })
})

对于repo

从客户机向json发送ajax调用,然后感到高兴。。。。下面是riotjs的一个例子:太棒了!我可以。在我设置了在express server上返回测试数据的API之后,我可以通过重写Riot的数据,使用ajax回调在客户端重新呈现数据。js@jef请将HTML、JSON等大写。