我的删除代码无效,我认为甚至没有开火,因为我没有看到我的console.log,我有一个与表单一起使用的添加按钮,它们看起来很相似,这就是为什么我不明白
app.js:
var db = monk('localhost:27017/mongodb');
玉:
extends admin_menu
block content
h1.
Cocktail list
ul
each cocktail, i in cocktaillist
li
p= cocktail.name
form#form_delete_project(name="/admin/delete_cocktail", method="post", action="/admin/delete_cocktail")
input#input_name(type="hidden", placeholder="", name="_id", value="#{cocktail._id}")
button#submit_project(type="submit") delete
index.js:
router.post('/admin/delete_cocktail', function(req, res) {
console.log(id)
// Set our internal DB variable
var db = req.db;
// Get our form values. These rely on the "name" attributes
var id = req.body._id;
// Set our collection
var collection = db.get('cocktailcollection');
// Submit to the DB
collection.remove({
"_id":id
}, function (err, doc) {
if (err) {
// If it failed, return error
res.send("There was a problem removing the information to the database.");
}
else {
// And forward to success page
res.redirect("/admin/cocktail_list");
}
});
});
答案 0 :(得分:1)
Jade建立在缩进之上。由于您没有缩进表单中的项目,因此不在您的表单中。在html中,您的代码看起来像这样:
<form>
</form>
<input name="_id">
<button>
由于您使用_id
的输入位于表单之外,因此未发布。这就是您的控制台日志没有显示的原因。没有req.body._id.
当然,您的提交按钮也在表单之外。所以它什么也没做。
所以,你要做的第一件事就是缩进代码。