У меня есть форма, в которой я разделил ее содержимое на две схемы mongodb
Я хотел бы читать переменные, которые находятся внутри node.js / express.js, непосредственно в хуках схемы mongoose либо через pre, либо послекрючки схемы.это мои файлы
express.js
var firstName = req.body.first_name;
var lastName = req.body.last_name;
var fullName = firstName+' '+lastName;
var employmentDate = req.body.employment_date;
var responsibility = req.body.responsibility;
userschema.full_name = fullName;
userschema.first_name = firstName;
userschema.last_name = lastName;
userschema.save(function (err, result){
});
/******************express UPDATE START**********/
user = new userschema(req.body)
employment = new employmentObject(req.body)
employment.employment_date= employmentDate;
employment.responsibility= responsibility;
/******************express UPDATE ENDS**********/
Schema.js
var userSchema = mongoose.Schema({
full_name : String,
other_name : String,
last_name : String,
email : String
});
userSchema.pre('save', function (){
//obtain values from form field
var field1 = employmentDate;
var field2 = responsibility;
const employmentObject = this.model('employment-detail');
/******************schema UPDATE START**********/
var emp_Date = employmentObject.employment_date;
var duties = employmentObject.responsibility;
/******************schema UPDATE ENDS**********/
employmentObjectins = new employmentObject({
'employment_date': formField1,
'responsibility' :formField2
});
employmentObjectins.save(function (err){
if(err){
console.log(err+' error saving object');
}
else{
console.log('no error in saving object');
}
});
});
Это просто суммарный контент, он длиннее этого.Но это основная концепция.Основными областями является получение содержимого express.js в схему модели
ОБНОВЛЕНИЕ
EmploymentDate и ответственность не в userSchema, а в jobSchema Как я могуполучить поля, которые не находятся в userSchema (основная схема), но находятся в EmploymentSchema (вторая схема)
ВТОРОЕ ОБНОВЛЕНИЕ
При модификации выше это производитerror ParallelSaveError: Невозможно сохранить () один и тот же документ несколько раз параллельно.Документ:
Что я делаю неправильно
ТРЕТЬЕ ОБНОВЛЕНИЕ
Когда я сделал модификацию на основе того, что вы сказали, я обнаружил, что когда у меня есть двамодели, объявленные в express.js со своими полями / переменными модели, и я вызываю вторую модель в предварительном хуке первой модели, это выдает мне эту ошибку Не могу сохранить () один и тот же документ несколько раз параллельно.
После внесения изменений в код.Это файлы, которые существуют
Express.js
var firstName = req.body.first_name;
var lastName = req.body.last_name;
var fullName = firstName+' '+lastName;
var employmentDate = req.body.employment_date;
var responsibility = req.body.responsibility;
userschema.full_name = fullName;
userschema.first_name = firstName;
userschema.last_name = lastName;
userschema.save(function (err, result){
});
employment.employment_date= employmentDate; <---
employment.responsibility= responsibility; <---
//I believe that I would need to declared this in order to use it in the schema
user = new userschema(req.body)
employment = new employmentObject(req.body)
userschema.js
var userSchema = mongoose.Schema({
full_name : String,
other_name : String,
last_name : String,
email : String
});
userSchema.pre('save', function (){
//obtain values from form field
var field1 = employmentDate;
var field2 = responsibility;
const employmentObject = this.model('employment-detail');
var emp_Date = employmentObject.employment_date;<-- I am calling what I declared earlier
var duties = employmentObject.responsibility;<-- I am calling what I declared earlier in express
**//when I declared above two lines it brings up the error **
**//Can't save() the same doc multiple times in parallel.**
employmentObjectins = new employmentObject({
'employment_date': emp_Date,
'responsibility' :duties
});
employmentObjectins.save(function (err){
if(err){
console.log(err+' error saving object');
}
else{
console.log('no error in saving object');
}
});
});