我们的对象由用户通过表单传递信息来构建。 我们可以成功创建和发布对象,但是不能删除它们。
为此,我尝试了许多不同的路由/呼叫,但没有一个成功。
这是我们的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();
})
});
})
任何帮助将不胜感激。
答案 0 :(得分:0)
您正在表单中使用delete
方法,这是正确的,并且在快递服务器上发布方法,请尝试使用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'
答案 1 :(得分:0)
您在
的html中有一个额外的引号action = ''deleteMe'