为什么我们的对象不删除?节点,Mongo,HTML

时间:2018-08-30 02:12:56

标签: html node.js mongodb rest backend

我们的对象由用户通过表单传递信息来构建。 我们可以成功创建和发布对象,但是不能删除它们。

为此,我尝试了许多不同的路由/呼叫,但没有一个成功。

这是我们的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();
        })
    });
})

任何帮助将不胜感激。

2 个答案:

答案 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'