#javascript #database #mongoose #ejs #objectid
Вопрос:
я создавал список дел, в котором, когда я устанавливаю флажок, он возвращает идентификатор отмеченного элемента, а затем удаляет его с помощью метода findByIdAndRemove, чтобы удалить элемент из моей локальной базы данных мангустов, но идентификатор, который он возвращает, имеет дополнительное пространство, связанное с ним. сначала я был сбит с толку, почему мой идентификатор был неверным, а затем, после некоторой отладки, я понял эту проблему и понятия не имею, почему это происходит. когда я обрезаю последний символ строки, это устраняет мою проблему, но все же, почему добавляется дополнительное пространство?
было бы здорово узнать, в чем причина этого.
код ejs, в котором флажок возвращает элемент._id
<form action="/delete" method="POST">
<div class="item">
<input type="checkbox" name="checkbox" value="<%=item._id%> " onchange="this.form.submit()">
<p><%= item.name %></p>
</div>
</form>
<% }) %>
app.js код для /удаления маршрута запроса на публикацию
app.post("/delete", function(req, res){
let checkedItemId = req.body.checkbox;
console.log(checkedItemId "hii"); // outputs: 60dd7cafc9bfd91808c706a6 hii
// expected: 60dd7cafc9bfd91808c706a6hii
Item.findByIdAndRemove(checkedItemId, function(err) {
if(!err) {
console.log("successfully deleted item");
} else {
console.log(err);
}
});
res.redirect("/");
});
Ответ №1:
value="<%=item._id%> "
это пространство и является причиной проблемы. Убери его, и все будет в порядке.