我正在研究一台随机报价机器。这是我的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”,它什么都没有。没有。而且我已经挫败了我的大脑,试图弄清楚发生了什么,但我做不到。括号表示法也不起作用。任何想法出了什么问题?
谢谢!
答案 0 :(得分:0)
当您将内容传递给渲染器时,您在第二个参数中传递的对象在ejs渲染页面中变为“全局”。因此,当您进行如下设置时:
res.render("home", { myString: "I like strings" });
...您可以通过引用传递的对象中的 对象来访问它:
<li><%=myString%></li>
所以您的data.data没有指向任何内容。
答案 1 :(得分:-1)
我有同样的问题,这是我的解决方案。在.toJSON()
之后添加data
:
<li><%=data.toJSON().data%></li>