Advertisement
tanim

Express+Mongo Data update fail

Apr 30th, 2017
291
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.72 KB | None | 0 0
  1. // Route for updating a quote
  2. app.get( '/update/:id', ( req, res ) => {
  3. var unsafeToken = req.params.id;
  4. var token = unsafeToken.trim(unsafeToken); console.log(token);
  5. //var token = new ObjectId(req.params.id); console.log( token );
  6. db.collection( 'quote' ).find({ '_id': ObjectId(token) }).toArray( function (err, result) {
  7. console.log(result);
  8. res.render('update.ejs', {quote: result});
  9. });
  10. });
  11.  
  12. // On update.ejs file this is the form
  13. <form action="update" method="put">
  14. <div class="form-group">
  15. <label for="name">Name:</label>
  16. <input type="text" placeholder="name" name="name" class="form-control" value="<%= quote[0].name %>">
  17. </div>
  18. <div class="form-group">
  19. <label for="quote">Quote:</label>
  20. <input type="text" placeholder="quote" class="form-control" name="quote" value="<%= quote[0].quote %>">
  21. </div>
  22. <input type="hidden" value="<%= quote[0]._id %>" name="quoteID">
  23. <button type="submit" class="btn btn-default">Update</button>
  24. </form>
  25.  
  26. // This is the action where i can't update my data
  27. app.post( '/update', ( req, res ) => {
  28. db.collection('quote').update (
  29. { _id: ObjectId(req.body.quoteID) },
  30. { $set: {
  31. name: req.body.name,
  32. quote: req.body.quote
  33. }
  34. }, function (err, result) {
  35. if (err) {
  36. console.log(err);
  37. } else {
  38. console.log("Post Updated successfully");
  39. res.redirect('/');
  40. }
  41. });
  42. });
  43.  
  44. Whenever I try to update the following error occurs
  45. Error: Argument passed in must be a single String of 12 bytes or a string of 24 hex characters
  46. at new ObjectID (c:\Users\AD LORD\Desktop\learning-node\node_modules\bson\lib\bson\objectid.js:50:11)
  47. at ObjectID (c:\Users\AD LORD\Desktop\learning-node\node_modules\bson\lib\bson\objectid.js:31:42)
  48. at app.get (c:\Users\AD LORD\Desktop\learning-node\server.js:35:44)
  49. at Layer.handle [as handle_request] (c:\Users\AD LORD\Desktop\learning-node\node_modules\express\lib\router\layer.js:95:5)
  50. at next (c:\Users\AD LORD\Desktop\learning-node\node_modules\express\lib\router\route.js:137:13)
  51. at Route.dispatch (c:\Users\AD LORD\Desktop\learning-node\node_modules\express\lib\router\route.js:112:3)
  52. at Layer.handle [as handle_request] (c:\Users\AD LORD\Desktop\learning-node\node_modules\express\lib\router\layer.js:95:5)
  53. at c:\Users\AD LORD\Desktop\learning-node\node_modules\express\lib\router\index.js:281:22
  54. at param (c:\Users\AD LORD\Desktop\learning-node\node_modules\express\lib\router\index.js:354:14)
  55. at param (c:\Users\AD LORD\Desktop\learning-node\node_modules\express\lib\router\index.js:365:14)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement