Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const User = require('../models/user');
- const express = require('express'); //using get/post here..
- const router = new express.Router();
- //Gets all users
- router.get('/', async (req,res)=>{
- console.log("Got a request!");
- const allUsers = await User.find({});
- try {
- res.send(allUsers);
- } catch(e) {
- // statements
- res.status(404).send({error: "Cannot send users"});
- }
- });
- //Gets a user
- router.get('/:uID', async (req,res)=>{
- const user = await User.findById(req.params.uID);
- try {
- res.send(user);
- } catch(e) {
- res.status(404).send({error: "Cannot send that user."});
- }
- });
- //Makes a new user
- router.post('/', async (req, res)=>{
- console.log("User router: POST request - \n", req.body);
- try {
- const newUser = new User(req.body);
- await newUser.save(); //Don't save till the User is created
- res.status(201).send({newUser, message: "Created new user."});
- console.log(`New user [ ${newUser.userName} ] is saved to database`);
- } catch(e) { //Something bad happened.
- res.status(500).send({error : "Please check entries."});
- }
- });
- //Edit a user
- router.patch('/:uID', async(req, res)=>{
- const user = await User.findById(req.params.uID);
- const fieldsToEdit = Object.keys(req.body);
- try {
- //For each field that was requested to be edit, change it.
- //Only changes the field that was requested to be changed.
- fieldsToEdit.forEach(field => {
- user[field] = req.body[field];
- });
- await user.save();
- res.send(user);
- } catch(e) {
- res.status(404).send({error: "Cannot send that user."});
- }
- });
- router.delete('/:uID', async (req, res)=>{
- try {
- const user = await User.findByIdAndDelete(req.params.uID);
- res.send(user);
- } catch(e) {
- // statements
- console.log(e);
- res.status(500).send();
- }
- });
- module.exports = router;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement