-
Notifications
You must be signed in to change notification settings - Fork 0
/
server.js
37 lines (32 loc) · 1.07 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
const {ApolloServer} = require('apollo-server')
const typeDefs=require('./typeDefs')
const resolvers=require('./resolvers')
const mongoose = require('mongoose')
const {findOrCreateUser} = require('./controllers/userController')
require('dotenv').config()
console.log(process.env.MONGO_URI)
var localUri = 'mongodb://localhost/karkra-geo-location'
mongoose.connect(process.env.MONGO_URI,{ useNewUrlParser: true })
.then(()=>console.log('DB connected'))
.catch((err)=>console.error(err))
const server = new ApolloServer({
typeDefs:typeDefs,
resolvers:resolvers,
context:async({req})=>{
let authToken =null
let currentUser =null
try{
authToken = req.headers.authorization
if(authToken){
// find or create user
currentUser = await findOrCreateUser(authToken)
}
} catch(err){
console.log(`unable to authenticate user with token ${authToken}`)
}
return {currentUser}
}
})
server.listen().then(({url})=>{
console.log(`server is listening on ${url}`)
})