Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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

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-limit

Swagger UI

```yaml
/jobs/{id}:
parameters:
- in: path
name: id
schema:
type: string
required: true
description: the job id
```