https://github.com/mdcodelab/jobs-api-backend
https://github.com/mdcodelab/jobs-api-backend
bcryptjs express helmet http-status http-status-codes jwt mongoose
Last synced: 8 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/mdcodelab/jobs-api-backend
- Owner: mdcodelab
- Created: 2023-08-24T12:01:09.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-09-26T21:01:28.000Z (over 2 years ago)
- Last Synced: 2025-01-30T23:28:35.521Z (11 months ago)
- Topics: bcryptjs, express, helmet, http-status, http-status-codes, jwt, mongoose
- Language: JavaScript
- Homepage:
- Size: 50.8 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
Awesome Lists containing this project
README
``bash
npm install && npm start
```
#### Database Connection
1. Import connect.js
2. Invoke in start()
3. Setup .env in the root
4. Add MONGO_URI with correct value
#### Routers
- auth.js
- jobs.js
#### User Model
Email Validation Regex
```regex
/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
```
#### Register User
- Validate - name, email, password - with Mongoose
- Hash Password (with bcryptjs)
- Save User
- Generate Token
- Send Response with Token
#### Login User
- Validate - email, password - in controller
- If email or password is missing, throw BadRequestError
- Find User
- Compare Passwords
- If no user or password does not match, throw UnauthenticatedError
- If correct, generate Token
- Send Response with Token
#### Mongoose Errors
- Validation Errors
- Duplicate (Email)
- Cast Error
#### Security
- helmet
- cors
- xss-clean
- express-rate-limit
Swagger UI
```yaml
/jobs/{id}:
parameters:
- in: path
name: id
schema:
type: string
required: true
description: the job id
```