这是我第一次创建API。我试着删除用户项一次,用户就被删除了。我能够删除用户,但我没有成功地删除项目。
User.js
express = require('express');
User = require('./user');
Item = require('../item');
router = express.Router();
User.findByIdAndRemove(req.params.id, function(err, user) {
if (err) {
return res.status(500).send('User not found by id.');
}
Item.deleteMany(user._id, function(err, item) {
if (err) {
return res.status(500).send('Item is not found');
}
return res.status(200).send(user, item);
});
});有办法做到这一点吗?因为我觉得我做错了。
谢谢!
发布于 2018-02-25 19:32:03
看起来你并没有定义真正的路线--你需要
router.route('/').post(function(req, res){ ... });您还应该包括正文解析器,以获取请求中的参数。
var bodyParser = require('body-parser');
app.use(bodyParser.json());
var parseUrlencoded = bodyParser.urlencoded({extended: false});用户方法的代码看起来更像下面的块。您可以将'/‘更改为您希望api响应的URL路径,并且可以根据您想要响应的方法将代码从位于.post中更改为.delete。
route.route('/')
.post(parseUrlencoded, function(req, res) {
// code to respond to 'post' methods
if (!req.params.id) {
return res.send('id not sent')
}
User.findByIdAndRemove(req.params.id, function(err, user) {
if (err) {
return res.status(500).send('User not found by id.');
}
Item.deleteMany(user._id, function(err, item) {
if (err) {
return res.status(500).send('Item is not found');
}
return res.status(200).send(user, item);
});
});
})
.delete(parseUrlencoded, function(req, res) {
// code to respond to 'delete' method
})https://stackoverflow.com/questions/48973900
复制相似问题