-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
40 lines (34 loc) · 1.01 KB
/
index.js
File metadata and controls
40 lines (34 loc) · 1.01 KB
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
const express = require("express");
const { ApolloServer } = require("apollo-server-express");
const typeDefs = require("./Schema/TypeDefs.js");
const resolvers = require("./Schema/Resolvers.js");
const jwt = require("jsonwebtoken");
const cors = require("cors");
const app = new express();
const port = 3000;
const SECRET = "jfdjfkdjfiwu923892839283fuiaadfjdkfj";
const models = require("./models");
app.use(cors());
const startServer = async () => {
const server = new ApolloServer({
typeDefs,
resolvers,
context: ({ req, res }) => {
const token = req.headers.authorization || "";
try {
const decodedToken = jwt.verify(token, SECRET);
return { user: decodedToken, req, res, models, SECRET };
} catch (err) {
return { req, res, models, SECRET };
}
},
});
await server.start();
server.applyMiddleware({ app });
};
startServer();
models.sequelize.sync().then((req) => {
app.listen(port, () => {
console.log(`Listening on port: ${port}`);
});
});