- A simple blog page in Nodejs, MongoDB and EJS(Server-side rendering)
- This page shows the list of all contents.
![index](https://private-user-images.githubusercontent.com/39133877/254646821-deea15f0-65cc-48cb-858a-a2db89f96bd7.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjA1Njk2NjMsIm5iZiI6MTcyMDU2OTM2MywicGF0aCI6Ii8zOTEzMzg3Ny8yNTQ2NDY4MjEtZGVlYTE1ZjAtNjVjYy00OGNiLTg1OGEtYTJkYjg5Zjk2YmQ3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzA5VDIzNTYwM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTgzYTczNmFkM2RlZDU1YzllY2I1NGM3YTMyMjRmMjAwNTcyNDRlNGJjY2Q5ZWNiYWViZDE2MDkzYTk4NGNiY2QmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.k_FMSQdhHkqqWKjJeUERnVTShu27R9agUj-5TGUAJ8I)
- Users are able to read the detail of a post and delete the current post.
![detail](https://private-user-images.githubusercontent.com/39133877/254647190-775e471d-0d10-4558-bb3b-c5f7ab96e0ae.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjA1Njk2NjMsIm5iZiI6MTcyMDU2OTM2MywicGF0aCI6Ii8zOTEzMzg3Ny8yNTQ2NDcxOTAtNzc1ZTQ3MWQtMGQxMC00NTU4LWJiM2ItYzVmN2FiOTZlMGFlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzA5VDIzNTYwM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQ1ZjhjZjFmZjEyOWFhY2QwNzE1YjE5MTEzOGQ5ODEyMjYwNDY4NDBlMjVkMGU3OTljZGJiNjRlYTgyYThiZGYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.TVJspy3l3rRpvmTCh0an6tdSbM-m0pL11Brq4kax6A0)
- Users are able to create a new post with title, snippet and body.
![write](https://private-user-images.githubusercontent.com/39133877/254647261-27da4515-7878-4d44-aac0-83debf2f7487.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjA1Njk2NjMsIm5iZiI6MTcyMDU2OTM2MywicGF0aCI6Ii8zOTEzMzg3Ny8yNTQ2NDcyNjEtMjdkYTQ1MTUtNzg3OC00ZDQ0LWFhYzAtODNkZWJmMmY3NDg3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzA5VDIzNTYwM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWJlMzIzNGU4OWI0NzVmMzI1NDNhNDU3NDNkMDQ4ZGE5Yjc1Y2FjM2EyYWQwZDQ0OWE3YjE3Y2FlMjlkMjQ5YzImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.gLnRUi3kIoV0N6I47uc8YL0GaEaxsfeYh9nGzYsd2fQ)
- How to create a server in Node
- How to customize req and res in Node
- Simple practice of creating response and routing
- We can install third-party packages via NPM.
- Install Nodemon globally, which is a package for restarting server automatically
- Package.json file(npm init)
- lodash package(npm install lodash)
- npm install express
- EJS
- In html, <% %> or <%= value %> <%- include %>works for EJS
- The order of middleware is important
- Logger middleware, Authentication middleware, Parsing JSON.... etc.
- 3rd party middleware package - ex) morgan - logger
- static files middleware(express.static)
- Collection -> Table
- Document -> Record
- MongoDB Atlas
- Mongoose: ODM library(object document mapping library)
- how to read env files **https://nodejs.dev/en/learn/how-to-read-environment-variables-from-nodejs/
- Route parameters(ex. localhost:3000/blogs/:id)
- EJS Beautify formatter
- Express router
- Model, View, Controller -> keeps code more modular and reusable
Youtube : https://youtu.be/zb3Qk8SG5Ms