node.js - 在猫鼬中投射到嵌入式失败错误
问题描述
我一直在寻找许多来源解决我的问题,但不幸的是我找不到答案。你能帮我吗。
其中有带有架构的文件。
const mongoose = require('mongoose');
const config = require('../config/database');
const analogueNumberSchema = new mongoose.Schema({
analogueName: String,
analogueNum: String
});
const detailSchema = new mongoose.Schema({
detailName: String,
originalNumber: [String],
analogueNumber: [analogueNumberSchema],
note: String,
picture: String
});
const modelModificationsSchema = new mongoose.Schema({
modelModificationName: String,
modelDetails: {
engine: [detailSchema],
transmission: [detailSchema],
frontAxle: [detailSchema],
rearAxle: [detailSchema],
breakes: [detailSchema],
electrics: [detailSchema]
}
});
const markModelsSchema = new mongoose.Schema({
markModelName: String,
modelModifications: [modelModificationsSchema]
});
const carsSchema = new mongoose.Schema({
markName: String,
markModels: [markModelsSchema]
});
const Car = module.exports = new mongoose.model('Car', carsSchema);
module.exports.addCar = function (newCar, callback) {
newCar.save(callback);
};
这是路由器代码:
router.post('/post', (req, res, next) => {
let newCar = new Car({
markName: req.body.markName,
markModels: [{
markModelName: req.body.markModelName,
modelModifications: [{
modelModificationName: req.body.modelModificationName,
modelDetails: [{
engine: [{
detailName: req.body.detailName,
originalNumber: req.body.originalNumber.split(","),
analogueNumber: [{
analogueName: req.body.analogueName,
analogueNum: req.body.analogueNumber
}],
note: req.body.note,
picture: req.body.picture
}],
transmission: [{
detailName: req.body.detailName,
originalNumber: req.body.originalNumber.split(","),
analogueNumber: [{
analogueName: req.body.analogueName,
analogueNum: req.body.analogueNumber
}],
note: req.body.note,
picture: req.body.picture
}],
frontAxle: [{
detailName: req.body.detailName,
originalNumber: req.body.originalNumber.split(","),
analogueNumber: [{
analogueName: req.body.analogueName,
analogueNum: req.body.analogueNumber
}],
note: req.body.note,
picture: req.body.picture
}],
rearAxle: [{
detailName: req.body.detailName,
originalNumber: req.body.originalNumber.split(","),
analogueNumber: [{
analogueName: req.body.analogueName,
analogueNum: req.body.analogueNumber
}],
note: req.body.note,
picture: req.body.picture
}],
breakes: [{
detailName: req.body.detailName,
originalNumber: req.body.originalNumber.split(","),
analogueNumber: [{
analogueName: req.body.analogueName,
analogueNum: req.body.analogueNumber
}],
note: req.body.note,
picture: req.body.picture
}],
electrics: [{
detailName: req.body.detailName,
originalNumber: req.body.originalNumber.split(","),
analogueNumber: [{
analogueName: req.body.analogueName,
analogueNum: req.body.analogueNumber
}],
note: req.body.note,
picture: req.body.picture
}]
}]
}]
}]
});
Car.addCar(newCar, (err, car) => {
if (err) {
res.json({success: false, msg: 'failed to add new car'});
console.log(err);
} else {
res.json({success: true, msg: 'new car added'});
}
});
});
这是“邮递员”中的后查询代码
{
"markName": "Daewoo",
"markModels": [{
"markModelName": "Nexia",
"modelModifications": [{
"modelModificationName": "1.5 8v",
"modelDetails": [{
"engine":[{
"detailName": "fdkj",
"originalNumber": ["123", "4545"],
"analogueNumber": [{
"analogueName": "sdkfd",
"analogueNum": "csdfs"
},
{
"analogueName": "sdd",
"analogueNum": "csdfsasdas"
}],
"note": "csdsldkf;sks;dskjfsndjfns",
"picture": ""
}],
"transmission": [{
"detailName": "fdkj",
"originalNumber": ["123", "4545"],
"analogueNumber": [{
"analogueName": "sdkfd",
"analogueNum": "csdfs"
},
{
"analogueName": "sdd",
"analogueNum": "csdfsasdas"
}],
"note": "csdsldkf;sks;dskjfsndjfns",
"picture": ""
}],
"frontAxle": [{
"detailName": "fdkj",
"originalNumber": ["123", "4545"],
"analogueNumber": [{
"analogueName": "sdkfd",
"analogueNum": "csdfs"
},
{
"analogueName": "sdd",
"analogueNum": "csdfsasdas"
}],
"note": "csdsldkf;sks;dskjfsndjfns",
"picture": ""
}],
"rearAxle": [{
"detailName": "fdkj",
"originalNumber": ["123", "4545"],
"analogueNumber": [{
"analogueName": "sdkfd",
"analogueNum": "csdfs"
},
{
"analogueName": "sdd",
"analogueNum": "csdfsasdas"
}],
"note": "csdsldkf;sks;dskjfsndjfns",
"picture": ""
}],
"breakes": [{
"detailName": "fdkj",
"originalNumber": ["123", "4545"],
"analogueNumber": [{
"analogueName": "sdkfd",
"analogueNum": "csdfs"
},
{
"analogueName": "sdd",
"analogueNum": "csdfsasdas"
}],
"note": "csdsldkf;sks;dskjfsndjfns",
"picture": ""
}],
"electrics": [{
"detailName": "fdkj",
"originalNumber": ["123", "4545"],
"analogueNumber": [{
"analogueName": "sdkfd",
"analogueNum": "csdfs"
},
{
"analogueName": "sdd",
"analogueNum": "csdfsasdas"
}],
"note": "csdsldkf;sks;dskjfsndjfns",
"picture": ""
}]
}]
}]
}]
}
并且有错误消息:
'值“[ { engine: [ [Object] ],\n
传输: [ [Object] ],\n frontAxle: [ [Object] ],\n后轴: [ [Object] ], 'Cast to Embedded 失败
,\n中断:[ [Object] ],\n 电气:[ [Object] ] } ]" 在路径 "modelDetails"',名称:'CastError',stringValue:'"[ { engine: [ [Object] ],\n 传输: [ [Object] ],\n 前轴: [ [Object] ],\n 后轴: [ [Object] ],\n 刹车: [ [Object] ],\n 电气: [ [Object] ] } ]"' , kind: 'Embedded', value: [Array], path: 'modelDetails', reason: [Object] } }, _message: '汽车验证失败', name: 'ValidationError' }
我非常感谢您的帮助。谢谢!
解决方案
最后我有我的问题的答案。roter 代码有错误。您只需要定义属性而不定义结构。这是代码
router.post('/post', (req, res, next) => {
let newCar = new Car({
markName: req.body.markName,
markModels: req.body.markModels,
modelModificationName: req.body.modelModificationName,
modelDetails: req.body.modelDetails,
engine: req.body.engine,
transmission: req.body.transmission,
frontAxle: req.body.frontAxle,
rearAxle: req.body.rearAxle,
breakes: req.body.breakes,
electrics: req.body.electrics,
detailName: req.body.detailName,
originalNumber: req.body.originalNumber,
analogueNumber: req.body.analogueNumber,
note: req.body.note,
picture: req.body.picture,
analogueName: req.body.analogueName,
analogueNum: req.body.analogueNum
});
Car.addCar(newCar, (err, car) => {
if (err) {
res.json({ success: false, msg: 'failed to add new car' });
console.log(err);
} else {
res.json({ success: true, msg: 'new car added' });
}
});
}); 如果有人感兴趣,谢谢。抱歉文字错误))
推荐阅读
- javascript - 用于轮询的 javascript async 和 setInterval
- python-3.x - 在空闲、Powershell 和终端中是否有用于彩色文本输出的单个 python 模块?
- powershell - 如何将选项作为地图传递?
- amazon-web-services - 如何为 AWS ACM 设置权限以限制每个域的用户
- java - 如何在Android中进行一键登录和注册
- spring-boot - 逗号分隔的请求参数不适用于 Kotlin 数据类
- scala - 如何为自定义错误处理创建自己的解码器?
- c++ - 从 LLVM Kaleidoscope 教程编译代码时遇到问题
- python - 如何在高斯朴素贝叶斯中获得特征重要性
- react-native - 如何实现具有不同颜色的条形图,如 REACT-NATIVE 中的图片所示。帮我解决这个问题