Я застрял, сохраняя объект с массивом идентификатора объекта.Я использую node.js с restify и mongoose.
У меня есть запрос снаряжения со многими вариантами снаряжения:
Модель:
const outfitRequestsSchema = new mongoose.Schema({
user: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
},
title: {
type: String
},
maxCost: {
type: Number
},
outfitChoices: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'OutfitChoice'
}]
}, {usePushEach: true});
Маршрутизатор:
application.post('/outfit-choices', (req, resp, next) => {
OutfitRequest.findById(req.body.outfitRequest)
.then(outfitRequest => {
console.log(outfitRequest);
const outfitChoice = new OutfitChoice(req.body);
outfitChoice.save().then(outfitChoice => {
outfitRequest.outfitChoices.push(outfitChoice._id);
outfitRequest.save()
.then(outfitRequestNew => {
console.log(outfitRequestNew);
this.render(resp, next);
})
.catch(next);
}).catch(next);
})
.catch(next);
});
Метод визуализации:
render(response: restify.Response, next: restify.Next) {
return (document) => {
if (document) {
this.emit('beforeRender', document);
response.json(document);
} else {
response.send(404);
}
return next();
}
}
Экран перезагрузки
Он остается в цикле, но запись сохраняется на экране БД
БД
Я думаю, что это проблема с связанными обещаниями, но я не могу 'не узнать, как решить эту проблему.