-
Notifications
You must be signed in to change notification settings - Fork 0
/
server.js
61 lines (47 loc) · 1.17 KB
/
server.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
const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');
const { graphqlExpress, graphiqlExpress } = require('apollo-server-express');
const { makeExecutableSchema } = require('graphql-tools');
// Database Config
const dbconfig = require('./config/databaseconfig');
// Model
const Book = require('./model');
// Schema
const Types = require('./schema');
// Resolver
const Resolver = require('./resolver');
// Initialize Express
const app = express();
// connect to mongodb using mlab
mongoose.connect(dbconfig.database);
var db = mongoose.connection;
db.on('error', (err) => {
console.log(err);
})
db.once('open', () => {
console.log("Connected to mongoDB database ...");
});
const Schema = makeExecutableSchema({
typeDefs: Types,
resolvers: Resolver
});
app.use(
'/graphql',
bodyParser.json(),
graphqlExpress({
schema: Schema,
context: { Book }
})
);
app.use(
'/graphiql',
graphiqlExpress({
endpointURL: '/graphql'
})
);
// Set Port
const PORT = 3000;
app.listen(PORT, () => {
console.log(`Server started listening on localhost:${PORT}/graphiql`);
});