Skip to content

Commit d73ef9a

Browse files
committed
[add] proyecto base de api rest
0 parents  commit d73ef9a

11 files changed

+5157
-0
lines changed

.babelrc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"presets": ["@babel/preset-env"]
3+
}

.gitignore

Lines changed: 241 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,241 @@
1+
# Created by https://www.toptal.com/developers/gitignore/api/node,visualstudiocode,linux,macos,windows
2+
# Edit at https://www.toptal.com/developers/gitignore?templates=node,visualstudiocode,linux,macos,windows
3+
4+
### Linux ###
5+
*~
6+
7+
# temporary files which can be created if a process still has a handle open of a deleted file
8+
.fuse_hidden*
9+
10+
# KDE directory preferences
11+
.directory
12+
13+
# Linux trash folder which might appear on any partition or disk
14+
.Trash-*
15+
16+
# .nfs files are created when an open file is removed but is still being accessed
17+
.nfs*
18+
19+
### macOS ###
20+
# General
21+
.DS_Store
22+
.AppleDouble
23+
.LSOverride
24+
25+
# Icon must end with two \r
26+
Icon
27+
28+
29+
# Thumbnails
30+
._*
31+
32+
# Files that might appear in the root of a volume
33+
.DocumentRevisions-V100
34+
.fseventsd
35+
.Spotlight-V100
36+
.TemporaryItems
37+
.Trashes
38+
.VolumeIcon.icns
39+
.com.apple.timemachine.donotpresent
40+
41+
# Directories potentially created on remote AFP share
42+
.AppleDB
43+
.AppleDesktop
44+
Network Trash Folder
45+
Temporary Items
46+
.apdisk
47+
48+
### macOS Patch ###
49+
# iCloud generated files
50+
*.icloud
51+
52+
### Node ###
53+
# Logs
54+
logs
55+
*.log
56+
npm-debug.log*
57+
yarn-debug.log*
58+
yarn-error.log*
59+
lerna-debug.log*
60+
.pnpm-debug.log*
61+
62+
# Diagnostic reports (https://nodejs.org/api/report.html)
63+
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
64+
65+
# Runtime data
66+
pids
67+
*.pid
68+
*.seed
69+
*.pid.lock
70+
71+
# Directory for instrumented libs generated by jscoverage/JSCover
72+
lib-cov
73+
74+
# Coverage directory used by tools like istanbul
75+
coverage
76+
*.lcov
77+
78+
# nyc test coverage
79+
.nyc_output
80+
81+
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
82+
.grunt
83+
84+
# Bower dependency directory (https://bower.io/)
85+
bower_components
86+
87+
# node-waf configuration
88+
.lock-wscript
89+
90+
# Compiled binary addons (https://nodejs.org/api/addons.html)
91+
build/Release
92+
93+
# Dependency directories
94+
node_modules/
95+
jspm_packages/
96+
97+
# Snowpack dependency directory (https://snowpack.dev/)
98+
web_modules/
99+
100+
# TypeScript cache
101+
*.tsbuildinfo
102+
103+
# Optional npm cache directory
104+
.npm
105+
106+
# Optional eslint cache
107+
.eslintcache
108+
109+
# Optional stylelint cache
110+
.stylelintcache
111+
112+
# Microbundle cache
113+
.rpt2_cache/
114+
.rts2_cache_cjs/
115+
.rts2_cache_es/
116+
.rts2_cache_umd/
117+
118+
# Optional REPL history
119+
.node_repl_history
120+
121+
# Output of 'npm pack'
122+
*.tgz
123+
124+
# Yarn Integrity file
125+
.yarn-integrity
126+
127+
# dotenv environment variable files
128+
.env
129+
.env.development.local
130+
.env.test.local
131+
.env.production.local
132+
.env.local
133+
134+
# parcel-bundler cache (https://parceljs.org/)
135+
.cache
136+
.parcel-cache
137+
138+
# Next.js build output
139+
.next
140+
out
141+
142+
# Nuxt.js build / generate output
143+
.nuxt
144+
dist
145+
146+
# Gatsby files
147+
.cache/
148+
# Comment in the public line in if your project uses Gatsby and not Next.js
149+
# https://nextjs.org/blog/next-9-1#public-directory-support
150+
# public
151+
152+
# vuepress build output
153+
.vuepress/dist
154+
155+
# vuepress v2.x temp and cache directory
156+
.temp
157+
158+
# Docusaurus cache and generated files
159+
.docusaurus
160+
161+
# Serverless directories
162+
.serverless/
163+
164+
# FuseBox cache
165+
.fusebox/
166+
167+
# DynamoDB Local files
168+
.dynamodb/
169+
170+
# TernJS port file
171+
.tern-port
172+
173+
# Stores VSCode versions used for testing VSCode extensions
174+
.vscode-test
175+
176+
# yarn v2
177+
.yarn/cache
178+
.yarn/unplugged
179+
.yarn/build-state.yml
180+
.yarn/install-state.gz
181+
.pnp.*
182+
183+
### Node Patch ###
184+
# Serverless Webpack directories
185+
.webpack/
186+
187+
# Optional stylelint cache
188+
189+
# SvelteKit build / generate output
190+
.svelte-kit
191+
192+
### VisualStudioCode ###
193+
.vscode/*
194+
!.vscode/settings.json
195+
!.vscode/tasks.json
196+
!.vscode/launch.json
197+
!.vscode/extensions.json
198+
!.vscode/*.code-snippets
199+
200+
# Local History for Visual Studio Code
201+
.history/
202+
203+
# Built Visual Studio Code Extensions
204+
*.vsix
205+
206+
### VisualStudioCode Patch ###
207+
# Ignore all local history of files
208+
.history
209+
.ionide
210+
211+
### Windows ###
212+
# Windows thumbnail cache files
213+
Thumbs.db
214+
Thumbs.db:encryptable
215+
ehthumbs.db
216+
ehthumbs_vista.db
217+
218+
# Dump file
219+
*.stackdump
220+
221+
# Folder config file
222+
[Dd]esktop.ini
223+
224+
# Recycle Bin used on file shares
225+
$RECYCLE.BIN/
226+
227+
# Windows Installer files
228+
*.cab
229+
*.msi
230+
*.msix
231+
*.msm
232+
*.msp
233+
234+
# Windows shortcuts
235+
*.lnk
236+
237+
# End of https://www.toptal.com/developers/gitignore/api/node,visualstudiocode,linux,macos,windows
238+
239+
## vsc
240+
241+
.env

README.MD

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# API REST CON MYSQL
2+
3+
> en este proyecto vamos a esperimentar la consulta de datos a una bd en MySQL , utilizando el lenguaje JavaScript y Node.js para crear un servidor Express que realice peticiones asincronas al gestor
4+
5+
## Instalación de dependencias
6+
7+
> para este proyecto se utilizo `dotenv` para el manejo de datos sencible, `promise-mysql` para la conexion a la base de datos y consulta con la misma, `express` para el tema de las rutas y peticiones http
8+
9+
## Instalacion de dependencias de desarrollo
10+
11+
> se utilizo `babel` para la trasnpilacion del codigo js, `morgan` como middleware de log y `nodemon` para el monitorado de cambios en los archivos, en especial de babel se utilizo este comando que en su totalidad serian 4 dependencias
12+
13+
@babel/cli @babel/core @babel/node @babel/preset-env
14+
15+
## configuraciones
16+
17+
> se crea un archivo .babelrc en la raiz del proyecto, este se encargara de la compilacion de js
18+
19+
{
20+
"presets": ["@babel/preset-env"]
21+
}
22+
23+
esto es para que babel pueda compilar mi codigo moderno a una verion que entienda todos los navegadores, posterior se crea el comando en el packageJson para que se ejecute la compilacion.
24+
25+
"nombre-x" : "babel-node --presets=@babel/preset-env"
26+
27+
luego se debe de especificar la ruta donde se desea compilar el codigo, asi que con otro comando le indicamos
28+
29+
"dev" : "nodemon --exec npm run babel-node ./src/index.js"
30+
"dev": "npm run babel-node src/index.js"
31+
------------------------
32+
33+
> se crea igualmente en la raiz el archivo .env para las credenciales a la bd y datos sensibles
34+
35+
36+
> se para la configuracion de dotenv se crean los datos necesarios en .env y en el archivo de config.js o como lo haya llamado se pone la siguiente informacion.
37+
38+
import { config } from "dotenv";
39+
40+
config();
41+
42+
> se importa y llamada al modulo dotenv para cargar los valores de variables de entorno y posteriormente se llama a la función config(), luego se exporta un objecto que tendra los valores ocultos.
43+
44+
export default {
45+
host : process.env.HOST || "127.0.0.1",
46+
database : process.env.DATABASE,
47+
user : process.env.USERNAME,
48+
password : process.env.PASSWORD || "",
49+
port : process.env.PORT || 4000
50+
}
51+
52+

0 commit comments

Comments
 (0)