2014-11-07 2 views
0

Мои модели на передней панели не сохраняются. :tid - идентификатор команды, а :pid - идентификатор игрока.MongoDb обновить маршрут с двумя идентификаторами?

router.put('/api/players/:tid/:pid', player.update); 

update: function(req, res) { 
    models.Player.update({ _id: req.params.pid }, function(err, player) { 
     if (err) { 
      res.json({error: 'Player not found.'}); 
     } else { 
      console.log(player); 
     } 
    }) 
} // obviously looks a bit illogical, but not sure what to do here 100% 

Сейчас я просто использую статический идентификатор команды в своей основной базе.

var Backbone = require('backbone'), 
    PlayerModel = require('../models/player'); 

module.exports = PlayersCollection = Backbone.Collection.extend({ 
    model: PlayerModel, 
    url: '/api/players/545d1d72f7895d00008e2f43' 
}); 

Так в основном, что хватает игроков с team_id 545d1d72f7895d00008e2f43, но он также хочет, чтобы отправить к этому маршруту с идентификатором игроков, поэтому выше мой маршрут требует, :tid/:pid

Я просто не уверен, что мои Функция обновления mongoDB должна выглядеть так, чтобы правильно обновлять модель на сервере.

+0

Можете ли вы уточнить, в чем проблема? Является ли база данных на сервере, которая не обновляется, или соответствующая модель Backbone на интерфейсе? Первое, что я сразу заметил, это то, что вы передаете только объект запроса методу 'models.Player.update' без обновленного объекта объекта (должно быть' models.Player.update ({_id: req.params .pid}, {... обновленная модель ...} ', function (err, player) {...}). – lukaszfiszer

+0

Я не получаю никаких консольных ошибок, когда обновляю страницу или проверяю, что база данных ничего не обновляется Первоначально я получал 404, потому что маршрут не был настроен должным образом, но, по-видимому, сейчас он настроен нормально, так как я не получаю 404. –

+0

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

ответ

0

Хорошо, я забыл, что это была старая версия, я столкнулся с этим некоторое время назад. Мне пришлось добавить req.body.

update: function(req, res) { 
    models.Player.update({ _id: req.params.pid }, req.body, function(err, player) { 
     if (err) { 
      res.json({error: 'Player not found.'}); 
     } else { 
      res.json(player); 
     } 
    }); 
} 
Смежные вопросы