Secure Blog REST API using NodeJS + Express + JWT + Mongoose
- Node.js
- Express.js
- MongoDB
- Mongoose
- JSON Web Token (JWT)
- bcrypt
- sharp
- Multer
- User Authentication: Allow users to sign up and log in.
- Profile Management: Users can update their profile details and change their password.
- Blog Management: Implement CRUD operations for Blogs.
- File Upload: Allow users to upload a profile picture/avatar.
- Documentation: Provide setup instructions and API documentation.
Follow these steps to set up your local environment for the Natours app:
-
Clone the Repository: Clone this repository to your local machine:
git clone https://github.com/alin00r/Blog-API.git cd Blog-API
-
Install Dependencies: Run the following command to install all the required dependencies:
npm install
-
Configure Environment Variables:
Before you can run the Blog-API app, you need to set up your environment variables. These variables store sensitive information required for the app to function properly. Follow these steps to configure your environment variables:
-
Create a
.env
File: In the root directory of the app, create a file named.env
. -
Add the Following Environment Variables: Replace the placeholders with your actual information. You might need to sign up for accounts and services to obtain the required credentials.
# MongoDB Configuration MONGO_URI=your-mongodb-database-url # JSON Web Token Configuration JWT_SECRET=your-json-web-token-secret
-
POST
/users/signup
POST
/users/login
POST
/users/logout
POST
/users/logoutAll
GET
/users/me
DELETE
/users/me
PATCH
/users/me
GET
/users/:id/avatar
POST
/upload/me/avatar
DELETE
/upload/me/avatar
GET
/users/:username
POST
/search
POST
/blog
GET
/blogs
GET
/blogs/:id
PATCH
/blogs/:id
DELETE
/blogs/:id
During API development, I use Postman
for handling/testing all endpoints.
-
Postman collection/documentation is available on this link click here
-
Base URL endpoints:
http://127.0.0.1:8000/
orhttp://localhost:8000/