Unable to catch error from nodejs/ mongoose
You can get it easily by using Callbacks.
Ref:
- https://docs.nodejitsu.com/articles/getting-started/control-flow/what-are-callbacks/
- https://www.tutorialspoint.com/nodejs/nodejs_callbacks_concept.htm
Controller
controller.updatePlayer = async (req, res) => { const { game_name, player_name, x, y, z } = req.body; Game.getPlayerDetails(playerName, function(err, playerData) { if (err) { res.status(500).send(err); } else { Game.updateGame(game_name, playerData, function (err, updatedData) { if (err) { res.status(500).send(err); } else { res.status(200).send(updatedData) } }); } });};
Model:
GamesModel.getPlayerDetails = (playerName, callback) => { PlayersModel.findOne({name: playerName}, callback);} // You can put below code in respective models and import them in controller and use.GamesModel.updateGame = (gameName, player) => { GamesModel.findOneAndUpdate({ name: gameName, 'players._id': player._id }, { $set: { 'players.$' : { _id: player._id, x, y, z } } }, { projection: { players: { '$elemMatch': { _id: player._id} } }, returnNewDocument: true }, callback);}
Hope this helps you.