繁体   English   中英

如何将数据从express.js传递到与html页面相关的Javascript代码

[英]How to pass data from express.js to a Javascript code related to a html page

我对express.js和编程很新。 我正在尝试学习如何从数据库(Mongodb)检索数据并将其发送到html文件或javascript。 我设法检索数据和console.log它。 我有这个代码从数据库和console.log获取名为'data'的数组。 我想将位置数组的数据传递给我的html文件,该文件提醒该位置。 我以为我可以简单地将数据作为节点模块放在javascript文件中,并在另一个javascript文件中调用该变量。 现在我知道如果它是玉,我可以在res.render之后轻松添加变量。 如果我使用HTML并且有一个单独的javascript文件,它将如何工作?

这是我的app.js代码:

var placeFinder = require ("./public/assets/js/data.js");
app.get('/test', function(req, res){

  placeFinder(function(err, data){
    if(err){
      return res.send(500);
    }    
    res.locals.place = data;
    console.log(data);
    res.render('test', {data: data});
  });
});

这是我的data.js代码:

var mongoose = require ('mongoose');  
function getPlaces(callback){
  var data = new Array();
  mongoose.model('stories').find({},function(err, companies) {
    if(err){
      return callback(err, data);
    }
    for (var i = 0; i < companies.length; i++) {
      data[i] = JSON.stringify(companies[i].place);
    }
    return callback(null, data);
 });
}
module.exports = getPlaces;

这是我用js代码的html:

<html>
<head>
  <title>test</title>
  <script> 
   $('button.showlocation').click( function(){
    var new = {{data}};
    document.write(new);
  }
  </script>
</head>
<body>
<button class="showlocation btn btn-info">Click Here!</button>

</body>
</html>

非常感谢

采用:

res.render('ViewMode', {data: data});

在ViewMode模板中有一个var this.data或只是数据。 在您的脚本中,假设您的标记分隔输出是{{}} (如在手柄中:

<script> var places = {{data}}</script>

也许快速而肮脏的答案是: - 在包含您的JS文件之前,在包含您的谷歌地图JS的HTML文件中,在名为places的全局变量中渲染数据。

另一种方法是从NodeJS服务器上的客户端javascript和端点调用,只返回“places”中的数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM