나는 다음과 같은 몽구스 모델이 있습니다방법 및 정적 : 액세스 "필드"
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var addressDefinition = require('./addressPersistenceModel');
var UserEntityModel = new Schema({
firstname: String,
lastname: String,
address: addressDefinition
});
mongoose.model('User', UserEntityModel);
주소의 정의가 그런 식으로 이루어집니다 :
module.exports = {
street: String,
...
};
내가 재사용의 이유로이 작업을 수행합니다.
그리고 내 비즈니스 로직에
나는이 작업을 수행 : 이UserBusinessLogic.prototype.create = function(inputModel, callback) {
var user = new UserPersistenceModel();
user.firstname = inputModel.firstname;
user.lastname = inputModel.lastname;
...
user.save(function(error) {
...
}
});
};
대신 비즈니스 로직에서 모델로 내 입력에서 모든 값을 할당하는, 내 모델에 입력 모델을 통과하고 싶습니다 (
var user = new UserPersistenceModel(inputModel);
입력의 모든 값을 읽고 내 모델의 "필드"에 할당해야합니다.
이렇게하려면 방법 및/또는 통계에 대해 생각했습니다. 내가 아는 한, "인스턴스 레벨"(하나의 문서를 저장하고 싶음)에서 작업 할 때 메소드를 사용해야한다. 맞습니까? 내 방법은 어떻게 보이나요? 거기에있는 들판에 접근하는 방법을 모르겠습니다.
업데이트
이 내 UserCreateInputModel
는 모습입니다 같은 :
var Address = require('../address');
var UserCreateInputModel = function(req) {
this.alias = req.param('alias');
this.email = req.param('email');
this.firstName = req.param('firstName');
this.lastName = req.param('lastName');
this.password = req.param('password');
this.address = new Address(req);
};
module.exports = UserCreateInputModel;
그리고이 주소가 모습입니다 같은 :
var Address = function(req, persistenceModel) {
if(req !== null && req !== undefined) {
this.city = req.param('city');
this.country = req.param('country');
this.state = req.param('state');
this.street = req.param('street');
this.zipCode = req.param('zipCode');
}
if(persistenceModel !== null && persistenceModel !== undefined) {
this.city = persistenceModel.city;
this.country = persistenceModel.country;
this.state = persistenceModel.state;
this.street = persistenceModel.street;
this.zipCode = persistenceModel.zipCode;
}
};
module.exports = 주소;
자바 스크립트 객체를 인스턴스화 할 때 몽구스 모델에 전달하면 속성이 자동으로 할당됩니다. –