-
Notifications
You must be signed in to change notification settings - Fork 0
/
app.js
52 lines (42 loc) · 1.43 KB
/
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// Ladataan tarvittavat konfiguraatioparametrit
const config = require('./utils/config')
// Ladataan tarvittavat moduulit
const express = require('express')
const bodyParser = require('body-parser')
const cors = require('cors')
const mongoose = require('mongoose')
const _ = require('lodash')
const { ApolloServer } = require('apollo-server-express')
// Ladataan kontrollerit
const notesRouter = require('./controllers/notes')
// Ladataan GraphQL-skeemat
const notesTypedef = require('./typedefs/notes')
const rootTypedef = require('./typedefs/root')
// Ladataan GraphQL-resolverit
const notesResolver = require('./resolvers/notes')
// Yhdistetään MongoDB-tietokantaan
mongoose.connect(config.MONGODB_URI, {
useNewUrlParser: true ,
useFindAndModify: false,
useCreateIndex: true,
useUnifiedTopology: true
})
// Luodaan yhtenäinen GraphQL-skeema
const typeDefs = [rootTypedef, notesTypedef]
// Yhdistetään GraphQL-resolverit
const resolvers = [_.merge(notesResolver, {})]
// luodaan Apollo-palvelin
const apollo = new ApolloServer({
typeDefs,
resolvers
})
// Määritellään express-moduuli ja sen middlewaret
const app = express()
app.use(cors())
app.use(bodyParser.json())
// Määritellään Apollo-middleware
apollo.applyMiddleware({ app })
// Määritellään tokenin haku -middleware
// Yhdistetään kontrolleri moduuliin
app.use('/api/notes', notesRouter)
module.exports = app