EJS变量不显示

时间:2017-04-26 06:40:12

标签: node.js ejs

我正在研究一台随机报价机器。这是我的NODE内容:

var express = require("express");
var app = express();

app.set("view engine", "ejs");

app.get("/", function(req,res){
    var data = "http://quotesondesign.com/wp-json/posts?filter[orderby]=rand&filter[posts_per_page]=1";
    res.render("home", {data: data});
});

app.listen(process.env.PORT, process.env.IP, function(){
    console.log("SERVER STARTED"); 
});

这是EJS的东西......

<h1>HELLO</h1>

<li><%= data.data %></li>

一切都很顺利,除了这里的问题......

在EJS括号中

“data.data”,它什么都没有。没有。而且我已经挫败了我的大脑,试图弄清楚发生了什么,但我做不到。括号表示法也不起作用。任何想法出了什么问题?

谢谢!

2 个答案:

答案 0 :(得分:0)

当您将内容传递给渲染器时,您在第二个参数中传递的对象在ejs渲染页面中变为“全局”。因此,当您进行如下设置时:

res.render("home", { myString: "I like strings" });

...您可以通过引用传递的对象中的 对象来访问它:

<li><%=myString%></li>

所以您的data.data没有指向任何内容。

答案 1 :(得分:-1)

我有同样的问题,这是我的解决方案。在.toJSON()之后添加data

<li><%=data.toJSON().data%></li>