2015-11-19 1 views
3

Я новичок в fccor данных fccor. Я попытался с несколькими, например, когда я прошу что-то вродеВ Falcor, как работать с базой данных?

model.get(["contacts", {0..2}, "name"]) 
    .then(response => { 
     this.state.list = response.json.contacts; 
     this.setState(this.state); 
     }); 

на стороне сервера

let data = { 
    contacts: [ 
     {name: "ABC"}, 
     {name: "XYZ"}, 
     {name: "PQR"} 
    ] 
}; 

let contactsRouter = Router.createClass([ 
    { 
     route: 'contacts[{integers:contactIndexes}]', 
     get: (pathSet) => { 
      let results = []; 
      pathSet.contactIndexes.forEach(contactIndex => { 
       if (data.contacts.length > contactIndex) { 
        results.push({ 
         path: ["contacts", contactIndex, "name"], 
         value: data.contacts[contactIndex].name 
        }); 
       } 
      }); 
      return results; 
     } 
    }, 
    { 
     route: 'contacts.add', 
     call: (callPath, args) => { 
      var newContact = args[0]; 

      data.contacts.push({name: newContact}) 
      return [ 
       { 
        path: ['contacts', data.contacts.length-1, 'name'], 
        value: newContact 
       }, 
       { 
        path: ['contacts', 'length'], 
        value: data.contacts.length 
       } 
      ] 
     } 
    } 
]); 

Я получаю данные & в состоянии выполнить другие операции тоже. Мой вопрос я хочу сделать те же операции CRUD с MongoDB вместо от

data.contacts

как я построить объект данных JSON Graph должны поступать из схемы базы данных. надеюсь, мой вопрос будет очищен.

ответ

2

Самый простой способ это просто сделать запрос к базе данных внутри get функции маршрута:

{ 
    route: 'contacts[{integers:contactIndexes}]', 
    get: (pathSet) => { 
     const data = db.get('myModel', (err, res) => { 
      return res 
     }) 
     let results = []; 
     pathSet.contactIndexes.forEach(contactIndex => { 
      if (data.contacts.length > contactIndex) { 
       results.push({ 
        path: ["contacts", contactIndex, "name"], 
        value: data.contacts[contactIndex].name 
       }); 
      } 
     }); 
     return results; 
    } 
} 

Сделано простой repo с помощью Falcor и CouchDB. Этого должно быть достаточно, чтобы понять, как это должно быть сделано в MongoDB.