这是我第一次创建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);
});
});
有没有办法实现这个目标?因为我觉得我做错了。
谢谢!
答案 0 :(得分:0)
看起来你没有定义实际路线 - 你需要
router.route('/').post(function(req, res){ ... });
您还应该包含正文解析器以从请求中获取参数
var bodyParser = require('body-parser');
app.use(bodyParser.json());
var parseUrlencoded = bodyParser.urlencoded({extended: false});
您对User方法的代码看起来更像下面的块。你可以改变' /'您希望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
})