2016-03-09 4 views
0

Я делаю приложение, используя MongoDB, Ember, Express и Node.Ember получить запрос

Моя модель класса определяются следующим образом:

export default DS.Model.extend({ 
    mark: DS.attr(), 
    section: DS.attr(), 
    student: DS.belongsTo('student', { async: true }), 
    coursecode: DS.belongsTo('coursecode', { async: true }), 
    programrecord: DS.belongsTo('programrecord', { async: true }) 
}); 

И моя модель студента определяются следующим образом:

export default DS.Model.extend({ 
    number: DS.attr(), 
    firstName: DS.attr(), 
    lastName: DS.attr(), 
    DOB: DS.attr(), 
    resInfo: DS.belongsTo('residency',{ async: true }), 
    gender: DS.belongsTo('gender',{ async: true }), 
    country: DS.belongsTo('country',{ async: true }), 
    province: DS.belongsTo('province',{ async: true }), 
    city: DS.belongsTo('city',{ async: true }), 
    grades: DS.hasMany('grade', { async: true }), 
}); 

Я делаю запрос GET для запроса для всех классов, которые имеют конкретные mark:

GET to /grades?mark=100 

Я также получаю запрос на запрос для оценок, относящихся к определенному фик студент (не уверен, если я делаю это правильно, я передаю в ID объекта студента):

GET to /grades?student=56d33a7896c31b6b1e40446a 

Как определить маршрут в файле server.js реагировать на это так Я могу вернуть ТОЛЬКО объекты класса с отметкой 100 или, наоборот, вернуть только классный класс, принадлежащий ученику?

+0

Вы можете проверить параметр запроса, чтобы определить, что парам посылается клиентом, а затем вернуть на его основе – AnujKu

ответ

0

Это маршрут используется для ответа на конкретные запросы вместо возвращения всех сортов (т.е. получить объекты класса, которые имеют отметку ххх или получить объекты классов, которые принадлежат к студенту Ид его.):

app.route('/grades') 
.post(function (request, response) { 
    var grade = new GradeModel(request.body.grade); 
    grade.save(function (error) { 
     if (error) response.send(error); 
     response.json({grade: grade}); 
    }); 
}) 
.get(function (request, response) { 
    var Grade = request.query.grade; 
    var mark = request.query.mark; 
    var student = request.query.student; 
    console.log(Grade); 
    console.log(mark); 
    console.log(student); 

    if (student) { 
     GradeModel.find({"student": student}, function (error, grades) { 
      if (error) response.send(error); 
      response.json({grade: grades}); 
     }); 
    } 
    else if (mark) { 
     GradeModel.find({"mark": mark}, function (error, grades) { 
      if (error) response.send(error); 
      response.json({grade: grades}); 
     }); 
    } 
    else { 
     GradeModel.find(function (error, grades) { 
      if (error) response.send(error); 
      response.json({grade: grades}); 
     }); 
    } 
}); 

Это запрос в действие внутри компонента:

import Ember from 'ember'; 

    export default Ember.Component.extend({ 
     isGradesFormEditing: false, 
     store: Ember.inject.service(), 
     gradeModel: null, 
     grades: null, 
     ID: null, 
     actions: { 
      viewGrades() { 
      var self = this; 
      var myStore = this.get('store'); 
      myStore.query('grade', {student: this.get('ID')}).then(function (grades) { 
        console.log(grades); 
        self.set('grades', grades); 
       }); 
      } 
     } 
    }); 
Смежные вопросы