Advertisement
Guest User

Untitled

a guest
Apr 24th, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.74 KB | None | 0 0
  1. const User = require('../models/user');
  2. const express = require('express'); //using get/post here..
  3. const router = new express.Router();
  4.  
  5. //Gets all users
  6. router.get('/', async (req,res)=>{
  7. console.log("Got a request!");
  8. const allUsers = await User.find({});
  9. try {
  10. res.send(allUsers);
  11. } catch(e) {
  12. // statements
  13. res.status(404).send({error: "Cannot send users"});
  14. }
  15. });
  16.  
  17. //Gets a user
  18. router.get('/:uID', async (req,res)=>{
  19. const user = await User.findById(req.params.uID);
  20. try {
  21. res.send(user);
  22. } catch(e) {
  23. res.status(404).send({error: "Cannot send that user."});
  24. }
  25. });
  26.  
  27. //Makes a new user
  28. router.post('/', async (req, res)=>{
  29.  
  30. console.log("User router: POST request - \n", req.body);
  31. try {
  32. const newUser = new User(req.body);
  33. await newUser.save(); //Don't save till the User is created
  34.  
  35. res.status(201).send({newUser, message: "Created new user."});
  36. console.log(`New user [ ${newUser.userName} ] is saved to database`);
  37.  
  38. } catch(e) { //Something bad happened.
  39. res.status(500).send({error : "Please check entries."});
  40. }
  41. });
  42.  
  43. //Edit a user
  44. router.patch('/:uID', async(req, res)=>{
  45. const user = await User.findById(req.params.uID);
  46. const fieldsToEdit = Object.keys(req.body);
  47. try {
  48.  
  49. //For each field that was requested to be edit, change it.
  50. //Only changes the field that was requested to be changed.
  51. fieldsToEdit.forEach(field => {
  52. user[field] = req.body[field];
  53. });
  54.  
  55. await user.save();
  56.  
  57. res.send(user);
  58. } catch(e) {
  59. res.status(404).send({error: "Cannot send that user."});
  60. }
  61.  
  62. });
  63.  
  64. router.delete('/:uID', async (req, res)=>{
  65. try {
  66. const user = await User.findByIdAndDelete(req.params.uID);
  67. res.send(user);
  68. } catch(e) {
  69. // statements
  70. console.log(e);
  71. res.status(500).send();
  72. }
  73. });
  74.  
  75. module.exports = router;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement