【发布时间】:2022-01-08 14:19:14
【问题描述】:
我正在尝试显示从服务器发送的数据,但它没有正确通过(请参阅上图左下角的 [Object object])。这是客户端代码:
<div class="card-body">
<h5 class="card-title"><%= event.event_name %></h5>
<p class="card-text"><%= event.description %></p>
<p class="card-text"><%= eventData %></p>
</div>
服务器正在以以下格式发送数组中的数据:
const eventData = [{
_id: 'objectId_for_the_event',
guests: [
'guestId1',
'guestId2',
'guestId3',
'guestId4',
'guestId5'
],
totalGuests: 5,
attendedGuests: 0
}
]
我想要将来自 totalGuests 和 AttendGuests 的值显示在客户端上。这是我在服务器中的函数(它很长而且有点令人困惑,但最后一行中的 console.log 运行良好,因此变量正在运行):
module.exports.showEvent = async (req, res) => {
const event = await Event.findById(req.params.id).populate('artist');
const { guest_id } = req.cookies;
let totalGuests = 0;
let attendedGuests = 0;
const eventData = await Event.aggregate([
{
"$match": {
"_id": objectId(req.params.id)
}
},
{
$project: {
_id: 1,
name: 1,
guests: 1,
totalGuests: { $cond: { if: { $isArray: "$guests" }, then: { $size: "$guests" }, else: "NA" } },
attendedGuests: {
$size: {
$filter: {
input: "$guests",
as: "guest",
cond: {
$and: [{
$eq: ["$$guest.attended", "Y"]
}]
}
}
}
}
}
}
])
if (eventData && Array.isArray(eventData) && eventData.length > 0) {
totalGuests = eventData[0].totalGuests;
attendedGuests = eventData[0].attendedGuests;
}
if (!event) {
req.flash('error', 'Cannot find that Event');
return res.redirect('/events');
}
res.render('events/show', { event, eventData });
console.log(totalGuests, attendedGuests);
};
如何将这两个变量从数组中取出并放到客户端上?
【问题讨论】:
-
在发送变量之前,您需要先在变量上使用
JSON.stringify() -
就是这样!谢谢@Capt171-除非您想要功劳,否则将在答案中单独添加?常量参加者 = JSON.stringify(attendedGuests);在函数中和客户端上的
-
将添加答案:)
标签: javascript node.js mongodb mongoose client-server