Я немного рассола. Всякий раз, когда я создаю новое резюме как зарегистрированного пользователя, он не добавляет id резюме в качестве массива. I.e, ["20293", "2932392", "32903239"]Ссылка Mongoose перезаписана
Вместо этого он перезаписывает текущий идентификатор резюме в схеме пользователей. Вот код
UserSchema
const UserSchema = new Schema({
_vId: {
type: String,
default: id.generate()
},
firstName: {
type: String,
required: true
},
lastName: {
type: String,
required: true
},
accountType: {
type: String,
enum: ['Alphaneer', 'Administrator', 'Support', 'PRO'],
default: 'Alphaneer'
},
email: {
type: String,
required: true,
trim: true
},
username: {
type: String,
required: true,
trim: true,
unique: true
},
bio: {
type: String,
default: "No bio provided."
},
// TODO: Hash the password before inserting as a document :)
password: {
type: String,
required: true
},
createdAt: {
type: String,
default: moment(new Date()).format("MMM DD, YYYY") // "Sun, 3PM 17"
},
resume: [ { type: mongoose.Schema.ObjectId, ref: "Resume" } ]
});
Где я отправляю мое резюме
// POST /dashboard/resume/create
router.post('/resume/create', (req, res, next) => {
Resume.create(req.body, (err, resume) => {
if (err) {
var err = new Error("Error:" + err);
err.status = 404;
next(err);
} else {
req.user = jwtDecode.decode(req.session.tokenID, 'secret');
//I am assuming that you have saved your resume and getting the saved object in `resume`, now update the logged in user in req.user
var user = req.user.sessionId;
var updateData = {
resume: resume._id
}
//save the updated user
User.findByIdAndUpdate(user, updateData, function(err, user) {
console.log(user);
if (err) {
res.json(err);
} else {
res.json(user);
}
})
}
})
});
UPDATE:
ОБНОВЛЕНО КОД:
// POST /dashboard/resume/create
router.post('/resume/create', (req, res, next) => {
Resume.create(req.body, (err, resume) => {
if (err) {
var err = new Error("Error:" + err);
err.status = 404;
next(err);
} else {
req.user = jwtDecode.decode(req.session.tokenID, 'secret');
//I am assuming that you have saved your resume and getting the saved object in `resume`, now update the logged in user in req.user
var user = req.user.sessionId;
var updateData = {
resume: resume._id
}
//save the updated user
User.findById(user, function(err, user) {
console.log(user);
if (err) {
res.json(err);
} else {
user.resume.push(resume.id)
user.save(function(user) {
return res.json(user);
});
}
})
}
})
});
Кажется, вы хотите скорее надавить новый идентификатор «Resume», а обновить всю модель «Пользователь». В этом случае я считаю, что лучше всего найти «Пользователь», как вы это делаете, а затем произнести «user.resume.push (resume.id)», а затем сохранить модель «Пользователь». – ishmaelMakitla
О, ладно, возможно, я дам этот выстрел. – Ethan
Я старался изо всех сил следовать вашему предложению, и я думаю, что получил его, но в нем возникает ошибка, касающаяся возобновления, не являющегося массивом? Я уверен, что я устанавливаю резюме как массив. – Ethan