我在尝试循环浏览json对象时遇到错误。我从api获取数据并将其传递给view.I试图打印整个对象他们没有问题。如果我尝试循环低谷,它会抛出错误。但是,如果我在控制器中硬编码响应(无论响应来自api),它都能正常工作。
这是具有硬编码响应的控制器
module.exports = {
index: function(req, res) {
var request = require("request");
request("http://app.coreosadmin.com/emp.json", function(error, response, body) {
if (error) {
console.log(error);
} else {
var menuData=[{"id":"Dasboard","icon":""},
{"id":"Subscriptions","icon":""},
{"id":"Extensions","icon":""},
{"id":"Adds Management","icon":""},
{"id":"Client Management","icon":""},
{"id":"User Management","icon":""},
{"id":"Settings","icon":""},
{"id":"Enums","icon":""},
{"id":"Accounts","icon":""},
{"id":"Reports","icon":""}];
return res.view('homepage',{menus:menuData});
}
});
}
};
这是我的控制器
module.exports = {
index: function (req, res) {
var request = require("request");
request("http://someurl.com/emp.json", function(error, response, body) {
if (error) {
console.log(error);
} else {
return res.view('homepage',{menus:body});
}
});
}
};
这是我的家庭观点
<div class="menu_section">
<ul>
<% menus.forEach(function(menu) { %>
<li title="<%- menu.id %>">
<a href="index.html">
<span class="menu_title"><%- menu.id %></span>
</a>
</li>
<% }); %>
</ul>
</div>
答案 0 :(得分:3)
它解决了。我不得不使用JSON.parse。
返回res.view(&#39;主页&#39;,{菜单:JSON.parse(body)});