【发布时间】:2018-04-08 19:53:01
【问题描述】:
编辑:我的教授刚刚通知我不要从管理员内部访问驱动程序。应仅在内部驱动程序中。
我正在使用 restAPI 开发一个项目,并且要求管理员可以删除驱动程序。
它们在自己的 .js 文件中都有自己的架构和模型
var mongoose = require('mongoose');
var AdminSchema = new mongoose.Schema({
name: String
});
mongoose.model('Admin', AdminSchema); // Model name is 'Admin'
module.exports = mongoose.model('Admin'); // Export for use in other parts of program
对于司机也是如此……
我正在使用 Postman 来测试所有这些,
现在我一直试图让我的管理员能够使用他们的 ID 从管理员数据库和驱动程序数据库中删除
admin 的 DELETE 方法如下:
var Admin = require('./Admin');
var Driver = require('./Driver');
.
.
.
router.delete('/:id', function (req, res) {
Admin.findByIdAndRemove(req.params.id, function (err, admin) {
if (err) return res.status(500).send("There was a problem deleting the admin.");
res.status(200).send("Admin: " + admin.name + " was deleted.");
});
});
我尝试了很多东西,包括看起来像这样的方法
router.delete('/:id', function (req, res) {
Admin.findByIdAndRemove(req.params.id, function (err, admin) {
if (err) return res.status(500).send("There was a problem deleting the admin.");
res.status(200).send("Admin: " + admin.name + " was deleted.");
});
Driver.findByIdAndRemove(req.params.id, function (err, driver) {
if (err) return res.status(500).send("There was a problem deleting the driver.");
res.status(200).send("Driver: " + driver.name + " was deleted.");
});
});
但这不起作用,我尝试过单独使用方法,但程序只查找第一个,所以如果我有在管理员删除方法之前删除驱动程序的方法,它会找到司机,但不是管理员。它只是触发驱动程序的错误消息,不会触发管理员删除方法。
任何提示或建议将不胜感激。这是我第一次学习这些东西,很有趣,但也很棘手!
谢谢!
【问题讨论】:
标签: javascript node.js rest express mongoose-schema