-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.js
More file actions
109 lines (84 loc) · 3.36 KB
/
Copy pathserver.js
File metadata and controls
109 lines (84 loc) · 3.36 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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
// const dotenv = require('dotenv');
// dotenv.config();
// const JWT_KEY = process.env.JWT_KEY;
// console.log('JWT_KEY:', process.env.JWT_KEY);
// const express = require('express');
// const { ApolloServer, gql } = require('apollo-server-express');
// const connectDB = require('./src/config/db');
// const bookResolvers = require('./src/resolvers/bookResolvers');
// const bookTypeDefs = require('./src/schemas/bookSchemas');
// const userResolvers = require('./src/resolvers/userResolvers'); // Import user resolvers
// const userTypeDefs = require('./src/schemas/userSchemas');
// const authMiddleware = require('./src/middleware/authMiddleware');
// const errorMiddleware = require('./src/middleware/errorMiddleware');
// const messageResolvers = require('./src/resolvers/messageResolvers');
// const messageTypeDefs = require('./src/schemas/messageSchemas');
// const app = express();
// // Connect to the database
// connectDB();
// // Combine typeDefs and resolvers
// const typeDefs = [bookTypeDefs, userTypeDefs, messageTypeDefs];
// const resolvers = [bookResolvers, userResolvers, messageResolvers];
// // Create ApolloServer instance
// const server = new ApolloServer({
// typeDefs,
// resolvers,
// context: ({ req }) => ({
// headers: req.headers, // Pass headers for middleware (e.g., authMiddleware)
// }),
// });
// // Ensure server starts before applying middleware
// async function startServer() {
// await server.start();
// server.applyMiddleware({ app });
// const port = process.env.PORT || 4000;
// app.use(express.json());
// app.use(errorMiddleware);
// app.listen(port, () => {
// console.log(`Server running on http://localhost:${port}`);
// });
// }
// // Start the server
// startServer();
const dotenv = require('dotenv');
dotenv.config();
const JWT_KEY = process.env.JWT_KEY;
console.log('JWT_KEY:', process.env.JWT_KEY);
const express = require('express');
const { ApolloServer } = require('apollo-server-express');
const connectDB = require('./src/config/db');
const bookResolvers = require('./src/resolvers/bookResolvers');
const bookTypeDefs = require('./src/schemas/bookSchemas');
const userResolvers = require('./src/resolvers/userResolvers');
const userTypeDefs = require('./src/schemas/userSchemas');
const authMiddleware = require('./src/middleware/authMiddleware');
const errorMiddleware = require('./src/middleware/errorMiddleware');
const messageResolvers = require('./src/resolvers/messageResolvers');
const messageTypeDefs = require('./src/schemas/messageSchemas');
const app = express();
// Connect to the database
connectDB();
// Combine typeDefs and resolvers
const typeDefs = [bookTypeDefs, userTypeDefs, messageTypeDefs];
const resolvers = [bookResolvers, userResolvers, messageResolvers];
// Create ApolloServer instance
const server = new ApolloServer({
typeDefs,
resolvers,
context: ({ req }) => ({
headers: req.headers, // Pass headers for middleware (e.g., authMiddleware)
}),
});
// Ensure server starts before applying middleware
async function startServer() {
await server.start();
server.applyMiddleware({ app });
const port = process.env.PORT || 4000;
app.use(express.json());
app.use(errorMiddleware);
app.listen(port, () => {
console.log(`Server running on http://localhost:${port}`);
});
}
// Start the server
startServer();