删除路径:
router.delete('/users/:name' , function (req, res, next) {
User.deleteOne({name: req.params.name}).then (function (user) {
console.log('DELETED / ', req.params.name);
res.send('DELETED / ', req.params.name);
}).catch (next)
});
在同一'/ users /'下的router.get
和router.post
没问题。
尝试此操作时出现一个奇怪的错误,
{
"error": "Unexpected token n in JSON at position 3"
}
尽管我的状态响应为200 OK。知道发生了什么吗?我正在尝试邮递员。
更新:
教训在这里学会了。确保您的测试方法实际上是正确。
我正在发送一个不同的标头,该标头在邮递员中以某种方式混淆,从而导致错误。一开始很难注意到,但是单击我在那里发现的设置,因为它被发送回了一个奇怪的特大JSON批处理。即使乍看之下,一切似乎都还不错。
答案 0 :(得分:2)
尝试这样:
router.delete('/users/:name' , function (req, res) {
User.deleteOne({name: req.params.name})
.exec()
.catch (err => res.status(500).send(err) )
.then (function () {
console.log('DELETED / ', req.params.name);
res.send('DELETED / ', req.params.name);
})
});
答案 1 :(得分:1)
基于Express API reference of res.send():
当参数是数组或对象时,Express会以JSON表示形式进行响应
您的上述代码似乎将字符串"DELETED / "
发回了。也许这就是您的JS代码引发JSON解析错误的原因。
尝试用以下内容替换res.send
语句:
res.send({msg : 'DELETED / ', user: req.params.name});
希望这会有所帮助。