我们的对象是由用户通过表单传递信息构建的。我们可以成功地创建和发布对象,但我们无法删除它们。
我为此尝试了许多不同的路线/调用,但没有一个成功。
这是我们的 HTML 按钮,用于触发 Node 中的删除调用:
<form id='deleteMe' name='deleteMe' method='delete' action=''deleteMe'>
<input name='_method' value='delete'>
<button type='submit'> delete </button></form>
这是删除本身的快速路线。
router.post('/deleteMe', function (req, res, next) {
const _id = req.body.id
mongoose.connect(URL, function (err, db) {
assert.equal(null, id)
db.collection('spots').deleteOne({ "_id": objectId(_id) }, function (err, result) {
console.log('op')
assert.equal(null, err);
db.close();
})
});
})
任何帮助将不胜感激。
您在表单中使用 delete
方法,这是正确的,并且在 Express 服务器上使用 post 方法,请尝试使用 router.delete
而不是 router.post
,如下所示,
router.delete('/deleteMe', function (req, res, next) {
const _id = req.body.id
mongoose.connect(URL, function (err, db) {
assert.equal(null, id)
db.collection('spots').deleteOne({ "_id": objectId(_id) }, function (err, result) {
console.log('op')
assert.equal(null, err);
db.close();
})
});
})
此外,您的表单上的操作属性存在语法错误,它应该是 action='deleteMe'
我是一名优秀的程序员,十分优秀!