Я искал решение своей проблемы во многих источниках, но, к сожалению, не могу найти ответ.Не могли бы вы мне помочь.
В нем есть файл со схемой.
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
RearAxle: [[Object]], \ n прерываний: [[Object]], \ n электрика: [[Object]]}]"at path" modelDetails "', имя:' CastError ', stringValue:'" [{engine: [[Object]], \ n передача: [[Object]], \ n frontAxle: [[Object]], \ ntailAxle: [[Object]], \ n прерываний: [[Object]], \ n электрика: [[Object]]}] "', вид:' Embedded ', значение: [Array], путь:' modelDetails ',reason: [Object]}}, _message: 'Ошибка проверки автомобиля', имя: 'ValidationError'}
Я очень ценю вашу помощь.спасибо!