-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
61 lines (51 loc) · 2.52 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
// Creamos la app
const express = require("express");
const routerApi = require("./routes/indexRouting");
const cors = require("cors");
const morgan = require("morgan");
const {logErrors, errorHandler, boomErrorHandler } = require("./middlewares/errorHandler");
const queryErrorHandler = require("./middlewares/errorSequelize");
const { checkApiKey } = require("./middlewares/authHandler")
const app = express(); // ejecutamos express como metodo dato que es un metodo constructor
const port = process.env.PORT || 9222; // donde quiero que corra mi app
//asignando un puerto que viene en una variable de entorno porque no sabemos que puerto nos van asignar
// implementamos in midleware nativo de express, se usa cuando quiero empezar a recibir informacion en formato json
app.use(express.json());
app.use(morgan("tiny"));
const whiteList = ["http://127.0.0.1:5501", "http://myapp.com", " http://localhost:9222"]; //aqui van los origenes donde si quiero tener peticiones
//Estos dos dominios van a tener permiso de hacer un request
const options = {
origin: (origin, callback) => {
//Cuando coloque una lista de apps a recibir, se cambio el defecto que era que el propio servidor se podia hacer peticiones asi mismo entonces implementamos || !origin para para que se valident los origenes en las whitelist o not sea el origen
if(whiteList.includes(origin) || !origin )
{
callback(null, true)
// null ----> se uso para decir que no hay error
// true ----> el acceso esta permitido
}
else
{
callback(new Error("No Tienes permitido pasar ahí ñ.ñ"));
}
}
}
// Usamos la app
app.get('/', (req, res) => {
res.send(`<h1> Hola mi server en express papus </h1>`);
});
routerApi(app);
//Se implementaron las opciones del cors para solo aceptar ciertas apps controladas
//Se van a enviar las configuraciones al cors
app.use(cors(options)); //Implementando cors para remover la proteccion por defecto que es que solo se aceptan peticiones desde su mismo origen
require("./utils/auth"); // Implementando las estrategias de jwt
//Implementado los middlewares de tipo error; este tipo de middleware se hacen despues del routing
app.use(logErrors);
app.use(queryErrorHandler);
app.use(boomErrorHandler);
app.use(errorHandler);
app.get("/xd", checkApiKey, (req, res) => {
res.send("Hola el middleware funciona, y puedes ver este endpoint con tu apikey :D");
})
app.listen(port, () => {
console.log(`Ya estoy funcionando master en el puerto ${port} http://localhost:9222`);
});