У меня есть две схемы, Пользователь и Ответы.Я сослался на ответы пользователей.Проблема в том, что мне нужно создать ответ, а затем отправить его в пользовательский массив ответов.что если ответ создан, а пользователь не найден из-за каких-либо проблем !?ответ висит в воздухе, без привязки к какому-либо пользователю.Есть ли обходной путь?
Схема ответа:
const mongoose = require('mongoose');
const requestReplySchema = mongoose.Schema({
email: String,
answers: [
{
number: Number,
title: String,
}
]
}, {timestamps: true});
module.exports = mongoose.model('RequestReply', requestReplySchema);
Схема пользователя (упрощенная версия):
const mongoose = require('mongoose');
const passportLocal = require('passport-local-mongoose');
const userSchema = mongoose.Schema({
firstName: String,
lastName: String,
email: String,
requestReplies: [
{
type: mongoose.Schema.Types.ObjectId,
ref: 'RequestReply'
}
]
}, {timestamps: true});
module.exports = mongoose.model('User', userSchema);
Код NodeJS для этой части:
let postReply = (req, res)=>{
let replyAnswers = [];
if(req.body.answers && (req.body.answers).length > 0){
replyAnswers = req.body.answers;
} else {
return res.json({status: false, message: 'answers not properly formed'});
}
const newReply = {
email: req.email,
answers: replyAnswers,
};
RequestReply.create(newReply, (error, createdReply)=>{
if(error || createdReply === null){
return res.status(400).json({status: false, message: 'error getting data'})
}
User.findOne({email: req.email}, (error, foundUser)=>{
if(error || foundUser === null){
// what can I do here!? the request is saved,
// but the user is not found or and error happened
}
});
return res.json({status: true})
});
};