JS-301-NodeServer
  • Introduction
  • js_library
    • Node Server
      • 00 - Intro
        • 01 - Purpose
        • 02 - Back-End Setup
        • 03 - Terms Cheat Sheet
      • 01 - Server Set up
        • 01 - npm packages
        • 02 - Express Intro
        • 03 - Express code
      • 02 - Development Tools
        • 01 - Nodemon Intro
        • 02 - Postman Intro
        • 03 - Postman set up
      • 03 - Routes Intro
        • 01 - Routes intro
        • 02 - Express Router() intro
        • 03 - Challenge 1
        • 04 - Challenge 2
      • 04 - Database Intro
        • 00 - DB Intro and Set up
          • 00 - DB Intro
          • 01 - PostgreSQL Intro
          • 02 - Install
        • 01 - Sequelize Intro
          • 01 - Sequelize intro
          • 02 - Initialize
      • 05 - Model View Controller
        • 01 - MVC
          • 00 - MVC Intro
        • 02 - Models
          • 01 - Intro to Models
          • 02 - Test Model
        • 03 - Controllers
          • 00 - Controllers Intro
          • 01 - Controller Set up
          • 02 - Create Method
          • 03 - req.body()
          • 04 - Crafting the Response
          • 05 - Sending the Response
          • 06 - JSON Response
          • 07 - Error Handling
        • 04 - Conclusion
      • 06 - Tokenization
        • 01 - JWT Intro
          • 01 - JWT intro
        • 02 - User Create
          • 01 - User Create
          • 02 - Refactor
        • 03 - User Token
          • 01 - JWT Package
          • 02 - Adding JWT
          • 03 - ENV
      • 07 - Encryption
        • 01 - bcrypt
        • 02 - bcrypt setup
      • 08 - Session
        • 00 - Session Intro
        • 01 - Sign In Method
        • 02 - Sign In Bcrypt
        • 03 - Sign In JWT
      • 09 - Middleware
        • 01 - Test Client HTML
        • 02 - Test Client JS
        • 03 - Middleware intro
        • 04 - Headers intro
        • 05 - Server Update
        • 06 - Test Post
        • 07 - Test Post Refactor
        • 08 - Post Data
        • 09 - Fetch From One
      • 10 - Authenticated Routes
        • 01 - Intro to Authenticated Routes
        • 02 - Validate Session
        • 03 - Changes to app.js
        • 04 - authtestcontroller.js
        • 05 - Delete an Item
        • 06 - Update an Item
        • 07 - Postman Testing
      • 11 - Authenticated Requests
        • 00 - Additions to index
        • 01 - Anatomy of a Request
        • 02 - Create User
        • 03 - Getting a Token
        • 04 - Get Items From One User
        • 05 - Creating an Item for a User
        • 06 - Get one item
        • 07 - Update an Item
        • 08 - Deleting an Item
        • 09 - Deleting with a Custom Event
      • 12 - Workout Log Server
        • 00 - Intro
      • 13 - More Sequelize Functions
        • Migrations
          • 00 - Intro
          • 01 - init and config
          • 02 - Creating the First Migration
          • 03 - Running Migrations
          • 04 - Reverting Migrations
          • 05 - Seeds
          • 06 - Reverting Seeds
        • Queries
          • 00 - Intro
          • 01 - Queries
Powered by GitBook
On this page
  • The Code
  • Analysis
  1. js_library
  2. Node Server
  3. 10 - Authenticated Routes

05 - Delete an Item

Deleting a post isn't as simple as most sites make it seem. Click an X or delete post and it's magically done, right? If only.

The Code

Add the following function to the bottom of your authtestcontroller.js file, right above the export statement:

/******************
* DELETE ITEM FOR INDIVIDUAL USER
******************/
        //1                //2
router.delete('/delete/:id', function(req, res) {
    var data = req.params.id; //3
    var userid = req.user.id; //4

    AuthTestModel
        .destroy({ //5
            where: { id: data, owner: userid } //6
        }).then(
            function deleteLogSuccess(data){ //7
                res.send("you removed a log");
            },
            function deleteLogError(err){ //8
                res.send(500, err.message);
            }
        );
});

Analysis

Previous04 - authtestcontroller.jsNext06 - Update an Item

Last updated 7 years ago

What did we just do? 1. When a DELETE request is received, the controller looks for a matching function, like what the rest of the HTTP verbs do. 2. We specify what we're doing in our endpoint to make it easy for the user to know what's happening. The :id allows a parameter to be passed through the URL to the server so we can use it later. 3. This is the parameter passed through the URL. The same way req.body points to the body of the request, req.params points to the URL. 4. This is our userid, set when validate-session is called. 5. .destroy() is a Sequelize method to remove an item from a database. See the for more information. 6. We tell Sequelize what to look for in trying to find an item to delete. If nothing matches exactly, nothing is done. 7. Callback function. This response is sent when the delete is successful. 8. Callback function. This response is sent when the delete is unsuccessful.

Sequelize docs