2014-12-24 3 views
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; 

답변

1

가 배열

하면 동기 방식으로 배열 위에 루프에 forEach 기능을 수행 할
관련 문제