0
json 데이터를 보내기 전에 isAparticipant 메소드를 실행하고 올바른 방법을 알지 못하고 event.find()가 모델의 인스턴스가 아니라 json을 리턴한다고 생각합니다. evache (JSON 데이터)에서 forEach를 수행하면 나쁜 생각입니다.발견 된 모든 문서에 대해 메소드를 실행하십시오.
컨트롤러 :
가var Event = require('../../model/event');
var eventsController = {
// Get Events List
index: function(req, res){
// var currentUser = req.user;
Event.find(function(err, evts){
if(err){
res.status(400).json({success: false, errors: err.errors});
}else{
res.status(200).json({success: true, events: evts});
}
});
}
};
// Export eventsController
module.exports = eventsController;
초상권
evts.forEach(function(evt) {
evt.isParticipant(req.user.id);
});
res.status(200).json({success: true, events: evts});
:
evts
로
var mongoose = require('mongoose');
var EventsSchema = new mongoose.Schema({
title:{
type: String,
unique: true,
required: true,
},
teaser: {
type: String,
required: true
},
description: {
type: String,
required: true
},
participants: [{type: mongoose.Schema.Types.ObjectId, ref: 'User'}],
start_date: {
type: Date,
required: true
},
end_date: {
type: Date,
required: true
},
lat: {
type: String,
required: true
},
lng: {
type: String,
required: true
},
created_at: {
type: Date,
default: Date.now
},
updated_at: {
type: Date,
default: Date.now
}
});
// Check If User is A particpant
EventsSchema.methods.isAparticipant = function(userId) {
if(this.participants.indexOf(mongoose.Schema.Types.ObjectId(userId)) != -1){
this.isParticipant = true;
}else{
this.isParticipant = false;
}
};
var Evt = mongoose.model('Event', EventsSchema);
module.exports = Evt;