我希望有人能帮我弄清楚我在这里做错了什么。我一直在搜索,我可以找到很多类似的问题,但没有一个我足够聪明来解决我的问题。我收到以下错误:
CastError:模型“客户”的路径“_id”处的值“客户”转换为 ObjectId 失败
它以前是有效的,我设法破坏了它,我撤消了我认为我改变的一切,但我仍然遇到错误。
这是我的架构:
const Schema = mongoose.Schema;
const CustomerSchema = new Schema({
custName: {
type: String,
required: true
},
custStreet: {
type: String
},
custCity: {
type: String
},
custState: {
type: String
},
custZip: {
type: String
}
});
module.exports = Customer = mongoose.model('customer', CustomerSchema);
我的路线:
const router = express.Router();
const customerController = require('../../controllers/customer')
const Customer = require('../../models/Customer');
router.route('/')
.get(customerController.index)
.post(customerController.newCustomer);
router.route('/:customerID')
.get(customerController.getCustomer)
module.exports = router;
还有我的控制器:
module.exports = {
index: async (req, res, next) => {
try {
const customers = await Customer.find({})
res.status(200).json(customers);
} catch(err) {
next(err);
}
},
newCustomer: async (req, res, next) => {
try {
const newCustomer = await Customer(req.body);
const customer = await newCustomer.save();
res.status(201).json(customer);
} catch(err) {
next(err);
}
},
getCustomer: async(req, res, next) => {
try {
const { customerID } = req.params;
const customer= await Customer.findById(customerID);
res.status(200).json(customer);
} catch(err) {
next(err);
}
}
};
另外,这是我收到的全部信息:
CastError:在 model.Query.exec(C:\Users\natha\Desktop\Coding\HAMMER\node_modules\mongoose\lib\query.js :4371:21) 在 model.Query.Query.then (C:\Users\natha\Desktop\Coding\HAMMER\node_modules\mongoose\lib\query.js:4463:15) 在 processTicksAndRejections (internal/process/task_queues. js:93:5)
还有一些让我感到困惑的事情,我的数据库中有另一个路由文件和另一个集合的控制器。它基本上是相同的代码,除了不是路由到 '/:Customers' 而是路由到 '/:Tickets' 并且它工作得很好。我看不到这段代码是如何工作的,而Customers代码却没有。
猛跑小猪
森栏
阿晨1998
相关分类