-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
50 lines (47 loc) · 1.35 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
'use strict'
const mongoose = require("mongoose");
const { ApolloServer } = require('apollo-server');
const typeDefs = require('./gql/schema');
const resolvers = require('./gql/resolvers');
const jwt = require("jsonwebtoken");
require('dotenv').config({path: ".env"});
mongoose.connect(process.env.BBDD,
{
useNewUrlParser:true,
useUnifiedTopology:true,
useFindAndModify:true,
useCreateIndex:true
},
(err, _) => {
if(err){
console.log("Error de conexión: "+err);
}else{
server();
}
}
);
function server() {
const serverApollo = new ApolloServer({
typeDefs,
resolvers,
context: ({req}) =>{
const token = req.headers.authorization.split(' ')[1];
if(token){
try {
const user = jwt.verify(
token,
process.env.SECRET_KEY
);
return {user};
} catch (error) {
console.log("#### ERROR ####");
console.log(error);
throw new Error("Token invalido");
}
}
}
});
serverApollo.listen({port:process.env.port || 4000}).then(response => {
console.log("Server running...\n"+response.url);
});
}