gpt4 book ai didi

arrays - 无法将 JSON 对象转换为全局数组

转载 作者:搜寻专家 更新时间:2023-10-31 23:26:01 26 4
gpt4 key购买 nike

我正在使用 express Js。从 MongoDB Atlas 获取数据后试图将此数据发送到我的 index.ejs 页面,为此我已将我的对象转换为数组并使其全局化,但我完全无法获取此数组或 JSON 对象。

app.get("/", function (request, response) {

model.find({},function (err, data1) {
if (err) {
response.send({
statusCode: 500,
message: 'Data did not selected'
})
} else {
let wholeArray = Object.keys(data1).map(key => data1[key]);
app.locals.wholeArray = wholeArray;
};
});
response.render("index");

});

我试过用这种方式在我的索引页上访问它,但也失败了。

var wholeArray = data1;
app.locals.wholeArray= wholeArray;

这是我用于访问 JSON 对象的 index.ejs 页面代码。

<% if(wholeArray.length) { %>
<% wholeArray.forEach(function(entry) { %>
<div class="panel panel-default">
<div class="panel-heading">
<div class="muted pull-right"><%= entry.today %></div>
<%= entry.title %>
</div>
<div class="panel-body">
<%= entry.content %>
</div>
</div>
<% }) %>
<% }else { %>
<span style="font-family:'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif; font-size: 18px; font-weight: 600;">No entries! </span><a href="/newEntry" class="btn btn-primary">Add Entry</a>
<% } %>

最佳答案

您正在 mongo.find 的回调函数之外调用 responde.render("index");,这意味着您没有等待数据检索以呈现“index.ejs”文件。

您需要在 mongo.find 的回调函数中调用 response.render("index");,如下所示:

app.get("/", function (request, response) {

model.find({},function (err, data1) {
if (err) {
response.send({
statusCode: 500,
message: 'Data did not selected'
})
} else {
let wholeArray = Object.keys(data1).map(key => data1[key]);
app.locals.wholeArray = wholeArray;
response.render("index");
};
});
});

请注意,您可以将局部变量临时局部变量传递给 res.render作为它的第二个参数,像这样:res.render("index", wholeArray);

还有,为什么要创建数组?您可以直接发送从 mongo 返回的对象,这可能会更容易在模板引擎中操作。

关于arrays - 无法将 JSON 对象转换为全局数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55071030/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com