【问题标题】:Using Array with Mongodb & EJS在 Mongodb 和 EJS 中使用数组
【发布时间】:2023-03-19 07:19:01
【问题描述】:

我试图找到在 MongoDB 和 EJS 中使用数组的最简单方法。

在前端的这个非常简单的示例中,用户可以单击按钮并向数组添加值。

$("#buttonOne").click(function() {
food.push("Kiwi");
$("#foodObject").val(food)
});

$("#buttonTwo").click(function() {
food.push("Taco");
$("#foodObject").val(food)
});

然后在前端的输入中看到它:

<input id='foodObject' type="text" name="foodObject" placeholder="foodObject">

然后的想法是将数组传递给 mongo

var UserSchema = new mongoose.Schema({
    username: String,
    password: String,
    foodObject: [ ],
});

然后就可以在 EJS 中使用数组了:

<h3 class='text-center'> <%= currentUser.foodObject[0] %>  </h3> 

因此,如果用户将 Kiwi 和 Taco 添加到数组中,我希望 foodObject[0] 只返回 Kiwi。

这可能吗?

目前它返回完整的字符串。即“猕猴桃,炸玉米饼”

【问题讨论】:

  • 你说它返回完整的字符串是什么意思? &lt;%= currentUser.foodObject[0] %&gt; 是否返回所有数组元素?
  • 对。目前看起来它将数组保存为字符串。所以它打印“Kiwi, Taco” For foodObject[0] 不仅是 Kiwi

标签: arrays node.js mongodb express ejs


【解决方案1】:

您的问题是您将foodObject 作为字符串而不是数组发送到服务器。所以你用 ejs 返回的数组只有一个元素。在服务器中,您必须将字符串拆分为数组,然后像这样保存。
服务器端代码:

String formValue = req.body.foodObject;
var foodObjects = formValue.split(',');

然后将foodObjects 数组保存到猫鼬模式。

【讨论】:

  • 太棒了!这非常有效!感谢您的帮助!我选择了 foodObject:req.body.foodObject.split(','),
  • 很高兴为您提供帮助! ;)
猜你喜欢
  • 1970-01-01
  • 2018-11-12
  • 2022-07-06
  • 2021-12-06
  • 2018-02-22
  • 1970-01-01
  • 2020-12-19
  • 2021-12-18
  • 2019-04-20
相关资源
最近更新 更多