通过ejs文件中的javascript访问JSON

通过ejs文件中的javascript访问JSON,javascript,json,node.js,ejs,Javascript,Json,Node.js,Ejs,您好,我想得到任何帮助,通过我的代码解决这个问题 这是我的带有节点js的服务器文件 //setup var express = require("express"); var request = require("request"); var bodyParser = require("body-parser"); var app = express(); //make body-parser workin app.use(bodyParser.urlencoded({extended: t

您好,我想得到任何帮助,通过我的代码解决这个问题

这是我的带有节点js的服务器文件

//setup

var express = require("express");
var request = require("request");
var bodyParser = require("body-parser");
var app = express();

//make body-parser workin
app.use(bodyParser.urlencoded({extended: true}));
//help excluding ejs extension
app.set("view engine", "ejs");
//pointing express to look at public folders for css files. 
app.use(express.static("public"));


//routing starts
//root directory
app.get("/", function(req, res){
   res.render("home", { data : "" });
});

app.post("/results", function(req, res){
    var mname = req.body.movieName;
    var myear = req.body.movieYear;
    var url = "http://www.omdbapi.com/?s="+mname+"&y="+myear+"&apikey=$$$$$$$$$$$$";
    request(url, function(error, response, body){
    if(!error && response.statusCode == 200){
       var data = JSON.parse(body);
       res.render("home", { data : data });
       console.log(url);
    }else{
      console.log("ERRRORRRR WARNNNINNNNNNGG");
      console.log(error);
    }

    });
这是我的ejs文件的一部分,希望访问从API请求检索到的JSON

<%= data["Search"][0] %>
有人能告诉我如何正确访问这个JSON吗


提前感谢您的时间和帮助

最明显的问题是您在
app.get(“/”,…

这意味着,当您转到网站的根
/
时,
数据
是一个空字符串

换成

app.get("/", function(req, res){
   res.render("home");
});
并在视图中检查数据是否存在

<% if (data) { %>

<% } else { %>

<% } %>


Hello Molda!当我从get请求中删除{data:}时,它给我的错误是“数据未定义”。因此,我尝试再次添加该部分,并尝试将console.log(数据)输出(在JSON.parse(body)行之后的POST请求中)我可以在我的终端窗口上看到JSON。因此,看起来数据很好地从API请求中检索到,但我不确定如何正确访问它。问题是,您在get请求中将数据设置为
,然后您尝试访问
数据['Search'][0]
,但
数据['Search']
未定义的
。它在app.post中工作是可以理解的,因为您正在从omdbapi.com检索数据。但是在get请求中没有这样做。您可以将
res.render(“home”);
更改为
res.render(“home”,{data:{Search:[]}};
但即使这样也不起作用,因为
data['Search']0]
将是未定义的。你不应该尝试访问你不确定存在的变量。哦!!!!!我现在可以看到了。我将尝试在不同的ejs文件中分离post请求,并在几分钟内通知你!!!!!酷,很高兴我能帮上忙
[object Object]
app.get("/", function(req, res){
   res.render("home");
});
<% if (data) { %>

<% } else { %>

<% } %>