Perform CRUD (Create, Read, Update and Delete) operations on any blog post. Create a new blog post by adding title, image and descrition to each blog post.
| name | path/url | http verb | description | Mongoose Method |
|---|---|---|---|---|
| INDEX ROUTE | /blogs | GET request | display a list of all blogs | Blog.find() |
| NEW ROUTE | /blogs/new | GET request | displays form to add a NEW blog | N/A |
| CREATE ROUTE | /blogs | POST request | Add new dog(resource) to DB and redirect somewhere | Blog.create() |
| SHOW ROUTE | /blogs/:id | GET request | Shows detailed information about one blog(resource) | Blog.findByID() |
| EDIT ROUTE | /blogs/:id/edit | GET request | Show edit form for one blog(resource) | Blog.findByID() |
| UPDATE ROUTE | /blogs/:id | PUT request | Update a particular blog, then redirect somewhere | Blog.findByIdAndUpdate() |
| DESTROY ROUTE | /blogs/:id | DELETE request | Delete a particular blog, then redirect somewhere | Blog.findByIdAndRemove() |
- Include all the dependencies from package.json file.
- Now run
node app.jsfrom Cloud9 console.
- [Node.js] (https://nodejs.org) - JavaScript runtime
- [Express] (https://expressjs.com/) - Fast, unopinionated, minimalist web framework for Node.js
- [MongoDB] (https://mongodb.com) - Cross-platform document-oriented database program
- [Mongoose.js] (https://mongoosejs.com/) - MongoDB object modeling for Node.js
- [npm] (https://npmjs.com/) - JavaScript Package manager
- [ejs package] (https://npmjs.com/package/ejs) - Embedded JavaScript templates
- [body-parser package] (https://npmjs.com/package/body-parser) - Node.js body parsing middleware
- [method-override package] (https://npmjs.com/package/method-override) - Overrides query methods for PUT and DELETE Routes
- [express-sanitizer package] (https://npmjs.com/package/express-sanitizer) - To prevent inducing javascript inside a blog post
- [JSON] (https://json.org) - Lightweight data-interchange format
- [Javascript] (https://www.javascript.com/) - High-level, interpreted programming language
- [AWS Cloud9 IDE] (https://aws.amazon.com/cloud9/) - Cloud-based integrated development environment (IDE)
- xjanus (https://github.com/xjanus)
- Colt Steele's Bootcamp course
- Representational State Transfer (REST) is an Architectural style that maps between HTTP routes and CRUD operations.
- RESTful web services are web services that conform to the REST architectural style.
- It provides interoperability between computer systems on the Internet.
- Setup the Blog App
- Create the Blog model
- Add INDEX route and template
- Header and Footer Partials
- Include Semantic UI
- Add Simple Nav Bar
- Add NEW Route
- Add NEW template
- Add CREATE Route
- Add CREATE template
- Add a show route
- Add a show template
- Add links to a show page
- Style show template
- Add Edit Route
- Add Edit Form
- Add Update Route
- Add Update Form
- Add Method-Override: It is an express package. The HTTP form doesnt support PUT and DELETE request. So, this is a way-around.
- Add Destroy Route
- Add Edit and Destroy Links
- Sanitize blog body
- Style Index
- Update REST table