Book Image

Mongoose for Application Development

By : Simon Holmes
Book Image

Mongoose for Application Development

By: Simon Holmes

Overview of this book

Mongoose is all about putting the data model where it should be: in your application. You can control everything from within your application in JavaScript, eliminating the need to work with the database or a separate management system. Mongoose for Application Development is a practical, hands-on guide that takes you from installing the technology stack through the steps of developing a web application. It covers the key features of Mongoose and how to use them to rapidly develop a Node.js and MongoDB application. This book introduces the full technology stack of Node.js, MongoDB, Express, and Mongoose. It will take you through the process of building an application on this stack with a focus on how Mongoose makes the process quicker and easier. You will see how Mongoose removes a layer of complexity when dealing with MongoDB whilst giving you more control over your data from your application. You will learn how to define schemas and models for your data in JavaScript. Using these schemas and models, you will learn how to build the cornerstone of any web application that will include CRUD operations (creating, reading, updating, and deleting data). If you want to learn how to build applications quickly and efficiently using Node.js, then Mongoose and this book are ideal for you. Using practical examples throughout, Mongoose for Application Development not only teaches you about the concepts of Mongoose, but walks through how to use them to build a real-life application.
Table of Contents (18 chapters)
Mongoose for Application Development
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

CRUD – deleting user and projects


That's the theory, so let's see it in action and let a user delete their account. To follow the approach we've been taking through this application, we'll have a page displaying a form and a form handler.

The routes in app.js that we'll use for this are:

app.get('/user/delete', user.confirmDelete); // delete current user form
app.post('/user/delete', user.doDelete);     // Delete current user action

The "Are you sure" page

Before a user deletes the account we want to ask them to confirm this, in case they clicked on the link by accident. So we create a new view as views/user-delete-form.jade:

h1= title
p #{name}, are you sure you want to permanently delete your account? The email address on this account is #{email}
form(id="formUserDelete", method="post", action="")
  input(type="hidden", name="_id", id="_id", value="#{_id}")
  input(type="submit", value="Yes, please delete it!")

And create a controller to map it to the route in routes/user.js:

// GET user delete...