Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/blasmedina/sandbox-express
Proyecto Base para una APP REST con express
https://github.com/blasmedina/sandbox-express
axios eslint expressjs jest nodemon prettier sequelize sqlite3 typescript
Last synced: about 2 months ago
JSON representation
Proyecto Base para una APP REST con express
- Host: GitHub
- URL: https://github.com/blasmedina/sandbox-express
- Owner: blasmedina
- Created: 2021-05-08T12:17:02.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2021-06-04T02:51:42.000Z (over 3 years ago)
- Last Synced: 2024-09-16T14:28:43.935Z (4 months ago)
- Topics: axios, eslint, expressjs, jest, nodemon, prettier, sequelize, sqlite3, typescript
- Language: TypeScript
- Homepage:
- Size: 545 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Sandbox Express
Proyecto base de una **API REST** en `NodeJS`. Con el fin dejar plasmado los conocimientos adquiridos con el tiempo, y construir un proyecto que pueda ayudar en futuros desarrollos, son las razones principales por la que nace esta iniciativa.
## Características
### Estructura de carpetas
```bash
tree -d -A -C -I 'node_modules|db|dist'
``````text
.
├── config => Configuraciones de la aplicación
├── db => Contenedor de base de datos
├── dist => Contenedor del build de la aplicación
└── src => Código fuente de la aplicación
├── app => Configuración de la APP
├── controllers => Responsable de la lógica de la aplicación
├── exceptions => Contenedor de "Exception"
├── helpers => Contenedor de "Helper"
├── middlewares => Contenedor de "Middleware"
├── migrations => [ORM] Migraciones de la base de datos
├── models => [ORM] Modelos de la base de datos
├── repositories => Responsable de recuperar datos de fuentes externas como bases de datos, api, almacenamiento local, etc.
├── routes => Definiciones de los recursos de la aplicación
├── seeders => [ORM] Sembradores de la base de datos
└── services => Responsable de la lógica de negocio y de proveer la información a los controladores
```1. Routes
1. Controllers
1. Services
1. Repositories### Dependencias
#### Principales
- Express (Framework de aplicación web de Backend para NodeJS)
- SQLite (Sistema de gestión de bases de datos relacional)
- Nodemon (Herramienta de desarrollo de aplicaciones basadas en NodeJS que reiniciar automáticamente la aplicación cuando se detectan cambios)
- Joi (Lenguaje de descripción de esquemas y el validación de datos)
- Config (Organiza configuraciones jerárquicas para aplicación separada por ambiente)
- Sequelize (Herramienta ORM de NodeJS basada en promesas para PostgreSQL, MySQL, MariaDB, SQLite y Microsoft SQL Server)#### Secundarias
- Morgan (Middleware registrador de solicitudes HTTP para NodeJS)
- Http-Status-Codes (Librería de constantes que enumeran los códigos de estado HTTP, que ayuda a una programación más semántica)## Códigos de estado
| Método | Códigos |
| ------ | --------------------- |
| GET | 200 - 400 - 404 - 500 |
| POST | 201 - 400 - 500 |
| PUT | 200 - 400 - 404 - 500 |
| DELETE | 204 - 400 - 500 |## Comenzando
### Pre-requisitos
- Node: v10 para arriba
### Instalación
```bash
npm install
``````bash
npm run build
``````bash
npm run start
```Y para ejecutar en ambiente de desarrollo...
```bash
npm run dev
```## Prueba
```bash
npm run test
```### Verificación de codificación
```bash
npm run lint
```## Construido con
- [Express](https://expressjs.com/)
## Swagger
- https://swagger.io/docs/specification/about/
- https://dev.to/kabartolo/how-to-document-an-express-api-with-swagger-ui-and-jsdoc-50do