Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/thedevelop3r/jobs-api-node-express-mongoose
Login/register - JavaScript | Node | Express| Json Web Token | Mongoose with front end | RESTFULL API - Create job -Update Job-Delete Job-Get Jobs-Get All Jobs
https://github.com/thedevelop3r/jobs-api-node-express-mongoose
Last synced: 22 days ago
JSON representation
Login/register - JavaScript | Node | Express| Json Web Token | Mongoose with front end | RESTFULL API - Create job -Update Job-Delete Job-Get Jobs-Get All Jobs
- Host: GitHub
- URL: https://github.com/thedevelop3r/jobs-api-node-express-mongoose
- Owner: Thedevelop3r
- Created: 2022-08-15T10:52:48.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2022-08-16T20:14:35.000Z (over 2 years ago)
- Last Synced: 2024-04-24T03:26:59.519Z (7 months ago)
- Language: JavaScript
- Homepage:
- Size: 78.1 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.MD
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
```