通过复选框返回的对象 ID 在 ID 字符串中添加了额外的 space
object id returned via checkbox adds extra space in the id string
我正在创建一个待办事项列表,当我单击复选框时,它 returns 项目的 ID 被选中,然后它通过使用 findByIdAndRemove 方法从我的本地猫鼬数据库中删除项目来删除它,但是它 returns 的 id 有一个额外的 space 与之关联。我一开始很困惑为什么我的 id 不正确,后来经过一些调试后我发现了这个问题,我不知道为什么会这样。当我 trim 字符串的最后一个字符时,它解决了我的问题,但为什么还要添加额外的 space?
很高兴知道是什么原因造成的。
复选框返回的 ejs 代码 item._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 /delete post 请求路由的代码
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("/");
});
value="<%=item._id%> "
这个 space 导致了问题。删除它,你应该没问题。
我正在创建一个待办事项列表,当我单击复选框时,它 returns 项目的 ID 被选中,然后它通过使用 findByIdAndRemove 方法从我的本地猫鼬数据库中删除项目来删除它,但是它 returns 的 id 有一个额外的 space 与之关联。我一开始很困惑为什么我的 id 不正确,后来经过一些调试后我发现了这个问题,我不知道为什么会这样。当我 trim 字符串的最后一个字符时,它解决了我的问题,但为什么还要添加额外的 space?
很高兴知道是什么原因造成的。
复选框返回的 ejs 代码 item._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 /delete post 请求路由的代码
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("/");
});
value="<%=item._id%> "
这个 space 导致了问题。删除它,你应该没问题。