Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在ejs模板中显示json数据?_Javascript_Node.js_Ejs - Fatal编程技术网

Javascript 如何在ejs模板中显示json数据?

Javascript 如何在ejs模板中显示json数据?,javascript,node.js,ejs,Javascript,Node.js,Ejs,我在一个控制器文件中有一个json数据,我从一个API获得了这个数据,这样我就可以 将从API获取的数据重定向到ejs文件,但是当我在body标记部分编写代码时 这样,它将显示整个JSON,但是 我在脚本标记下使用了这个语句,我没有得到任何东西,但[object]错误消息就是结果 如何在脚本标记中使用这个JSON数据来显示JSON数据中的每个键/值对?你能给我一个答案吗 在控制器中: res.render('display', { jsonData: storeJSONData });

我在一个控制器文件中有一个json数据,我从一个API获得了这个数据,这样我就可以 将从API获取的数据重定向到ejs文件,但是当我在body标记部分编写代码时 这样,它将显示整个JSON,但是 我在脚本标记下使用了这个语句,我没有得到任何东西,但[object]错误消息就是结果

如何在脚本标记中使用这个JSON数据来显示JSON数据中的每个键/值对?你能给我一个答案吗

在控制器中:

res.render('display', {
  jsonData: storeJSONData
}); 

我为重定向模板编写了此代码。

请在HTML中尝试此代码,它应该可以工作:

<script type="text/javascript">
    function codeAddress(){ 
         var data = <%- jsonData %>;
         document.write(JSON.stringify(data)); 
    }
</script>

函数codeAddress(){
var数据=;
document.write(JSON.stringify(data));
}

这是因为您不能在EJS标记中使用JS,您需要将其渲染为分配给
var
,然后才能使用它。

尝试将
渲染()更改为:

res.render('display', {
  jsonData: JSON.stringify(storeJSONData)
});
以及您的模板:


函数代码地址(){
var数据=;
文件。写入(数据);
}
不要讲话,只需观看:p

我已经发送了这样的数据

res.render('studentlist',{'studentlist' : result} );
然后我将这些数据显示在一个表格中,比如这个婴儿:D

<table class="table table-inverse">
  <thead>
    <tr>
      <th>Name</th>
      <th>Email</th>
      <th>Username</th>
    </tr>
  </thead>

  <tbody>
    <% for(var i=0; i < studentlist.length; i++) { %>
    <tr>
      <td><%= studentlist[i].name %></td>
      <td><%= studentlist[i].email %></td>
      <td><%= studentlist[i].username %></td>
    </tr>
    <% } %>
  </tbody>
</table>

名称
电子邮件
用户名
我希望这对你有帮助。我很肯定。:)
非常感谢。

以下是我们从控制器传递到视图的“文档”

app.get('/', function(req, res){
    User.find((err, docs) =>{
    if(!err)
      res.render('home', {'docs':docs});    
    else
      console.log(JSON.stringify(err));
    });
});
现在我们可以使用变量docs在ejstemplate上显示。范例

<ul class="collection">
 <% datas.forEach(function(data) { %>
    <li class="collection-item avatar">
      <span class="title"><%= data.name %></span>
      <p>First Line <br>
         <%= data.email %>
      </p>
    </li>
  <% }); %>
  </ul>
  • 第一行


我希望它能起作用。

您可能还应该显示您的
显示
模板。您好,先生,这是我在tempate中的脚本代码。函数codemaddress(){var data=document.write(data);}我从body标记调用了这个函数,使用的是我在浏览器[object object]上获得的输出,而不是json数据。为什么会发生这种情况?我知道嗨,先生,我尝试过这个函数,但没有得到json数据。函数codemaddress(){alert(“data”);var data=;document.write(json.stringify(数据));}当我注释最后两行时,“数据”值将显示在弹出窗口中,但当我取消注释最后两行时,甚至不会显示弹出消息,json数据也不会显示。在这两种情况下,无论是注释还是取消注释,json都不会显示。我如何获取此json数据?