npm install && npm start
- Import connectDB.js from db
- Invoke in start()
- setup .env in the root
- Add mongoURL with correct value
- auth.js
- jobs.js
- Email Validation 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,}))$/
- Validate - name, email, password - with Mongoose
- Hash Password (with bcryptjs)
- Save User
- Generate Token
- Send Response with Token
- 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
- Validation Errors
- Duplicate (Email)
- Cast Error
- helmet --> to set security related http response headers.
- cors --> to allow access from different domains.
- xss-clean --> to sanitize user input
- express-rate-limit --> to limit request made from each IP address
parameters:
- in: path
name: id
schema:
type: string
required: true
description: the job id```