Я новичок в mongoose и узле, и я создаю приложение, используя стек MEAN (Mongo ExpressJS AngularJS Node).Создайте Mongoose DTO для приложения MEAN
В прошлом я создал много API, используя asp.net WebAPI, и я не могу найти никакой документации по использованию DTO или View Models, чтобы уменьшить объем JSON, переданный туда и обратно между мой сервер и мой интерфейс.
Мое приложение относится к опросу, который пользователи заполняют онлайн. Каждый ответ затем используется для создания оценки пользователем.
Мои модели:
var UserSchema = new Schema({
email: {type: String, trim: true,default: '', match: [/.+\@.+\..+/,'']},
status: {type: String},
token:{type: String, default: crypto.randomBytes(64).toString('hex')},
score: {
managementExperience: {type: Number},
managementSkills: {type: Number},
relevantKnowledge: {type: Number},
commitment: {type: Number},
acceptanceOfChange: {type: Number},
age: {type: Number},
totalScore: {type: Number}
},
answers: [
{
optionId: {type: Schema.Types.ObjectId}
}
]
});
var SurveySchema = new Schema({
client_id:{type: Schema.Types.ObjectId, ref: 'Client' },
creationDate:{type: Date,default: Date.now},
title: {type: String, trim: true},
surveyVersion: { type: Schema.Types.ObjectId, ref: 'SurveyVersion' },
users:[UserSchema]
});
Сам экран изыскательные работы, но когда дело доходит до получения приборной панели результатов, я хотел бы послать DTO и не весь SurveySchema, как эта модель:
В .Net мире У меня была бы эта модель, у которой был бы конструктор, который принимает в качестве параметров экземпляр SurveySchema, но я не могу найти способ заставить его работать.
Я также попытался оба Schemas связаны с одной и той же коллекции в MongoDB:
mongoose.model('Survey', SurveySchema);
mongoose.model('SurveyLight', SurveySchemaLight, 'surveys');
Но когда я запускаю следующий запрос на SurveyLight схеме, я до сих пор есть все поля из обзора вернулся:
SurveyLight.find({'client_id': req.params.clientID}).exec(function(err, surveyList){
res.json(surveyList);
});
Что было бы лучше всего использовать механизм DTO/View Model в моем стеке?
Благодаря
Спасибо Блэйкс, я не знал этого синтаксиса, чтобы перечислить поля для вывода! –