Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kuzma02/job-api-in-node.js
https://github.com/kuzma02/job-api-in-node.js
Last synced: 15 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/kuzma02/job-api-in-node.js
- Owner: Kuzma02
- License: mit
- Created: 2023-12-22T08:42:43.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-06-10T14:13:56.000Z (5 months ago)
- Last Synced: 2024-06-10T16:21:27.345Z (5 months ago)
- Language: JavaScript
- Size: 50.8 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.MD
- License: LICENSE
Awesome Lists containing this project
README
#### Setup
```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-limitSwagger UI
```yaml
/jobs/{id}:
parameters:
- in: path
name: id
schema:
type: string
required: true
description: the job id
```