-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
38 lines (32 loc) · 918 Bytes
/
app.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
const graphqlHTTP = require('koa-graphql');
const Koa = require('koa');
const mongoose = require('mongoose');
const Router = require('koa-router');
const config = require('./config');
const schema = require('./lib/graphql');
const app = new Koa();
const router = new Router();
router.post('/graphql', graphqlHTTP({schema, graphiql: true}));
app.use(router.routes());
app.use(router.allowedMethods());
const listenServer = (app) => {
const port = config.port;
return new Promise((resolve) => {
app.listen(port, () => {
console.log(`Server listening on ${port}`);
resolve(port);
});
});
};
const startServer = async () => {
await mongoose.connect(config.db.mongoServer, {
useNewUrlParser: true,
useFindAndModify: false
});
console.log('Database connected');
await listenServer(app);
};
if (require.main === module) {
startServer()
.catch((err) => console.error('connection error', err));
}