В настоящее время я работаю над проектом, основанным на MEAN, и я подключаю часть монго + узла к AngularJS. Я использую Mongoose для схем, что очень удобно, но я встречаю странное поведение с вложенными схемами. Я создаю документ в AngularJS, который я отправляю в часть Node.js с запросом $ http.post. При его получении логика сервера использует функцию Model.create Mongoose для вставки ее в коллекцию. Он успешно выполняет, но функции create не хватает частей документа и заменяет некоторые вложенные объекты на Booleans.Mongoose create() приносит нежелательные изменения в документы
Вот выход Node.js при получении документа:
{ title: 'First Try',
branch: 2,
app: { name: 'Agirc Arrco' },
time:
{ periodNumber: 26,
periodDisplay: '27/06/2016',
submitDate: 1467304996377 },
author: { name: 'Doe', surname: 'John', id: 0 },
meta:
{ read: false,
priority: 3,
color: 'light-green',
type: true,
id: 6,
gathered: false },
elements:
[ { title: 'Sample',
description: 'Sample',
priority: 3,
app: [Object],
color: 'light-green',
type: 1,
id: 0 } ],
holidayData:
{ start: '30/06/2016',
startDisplay: '30/06/2016',
end: '',
endDisplay: '' },
comments: '',
rights:
{ editable: { level: false, branch: false, people: [Object] },
restriction: { level: false, branch: false, people: [Object] } } }
Здесь выходной сигнал после того, как документ был вставлен в коллекции:
{ __v: 0,
title: 'First Try',
meta: true,
comments: '',
_id: 57754c24b322186ef2ace2c0,
author: { name: 'Doe', surname: 'John', id: 0 },
rights:
{ restriction: { level: false, branch: false, people: [Object] },
editable: { level: false, branch: false, people: [Object] } },
elements: [ true ],
time:
{ periodNumber: 26,
periodDisplay: '27/06/2016',
submitDate: 1467304996377 },
app: { name: 'Agirc Arrco' } }
Здесь схема Мангуст:
var Report = mongoose.model('Report',{
title : String,
app : {name : String, id : Number},
time : {periodNumber : Number, periodDisplay : String, submitDate : Number},
meta : {
read : Boolean,
priority : Number,
color : String,
type : Boolean,
id : Number
},
elements : [{
title : String,
description : String,
type : Number,
priority : Number,
color : String,
app : {name : String, id : Number}
}],
rights : {
editable : {
level : Boolean,
branch : Boolean,
people : [{id : Number, bool : Boolean}]
},
restriction : {
level : Boolean,
branch : Boolean,
people : [{id : Number, bool : Boolean}]
}
},
comments : String,
author : {name : String, surname : String, id : Number}
});
И логика на стороне сервера:
app.post('/api/reports',function(req,res){
var report = req.body;
console.log(report);
Report.create(report, function(err,report){
if(err) res.send(err);
console.log('Created:');
console.log(report);
console.log('Error? ');
console.log(err);
//Reload reports
Report.find(function(err,reports){
if(err) res.send(err);
res.json(reports);
});
});
});
Ошибка ошибки выбрана Mongoose, так как я получаю «нулевой» вывод при отображении переменной err. Любые подсказки по этому вопросу были бы оценены, я не нашел ни одного случая, который бы соответствовал этому ...
Спасибо!
Где я могу узнать обо всех ключевых словах Mongoose? – Alex
просто прочитал документы http://mongoosejs.com/docs/ – sparik