Skip to content

Instantly share code, notes, and snippets.

View yvesbou's full-sized avatar

Yves Boutellier yvesbou

View GitHub Profile
require('dotenv').config();
const mongoose = require('mongoose');
const DATABASE_URL = process.env.DATABASE_URL;
const connectDB = () => {
return mongoose.connect(DATABASE_URL, {useUnifiedTopology: true, useNewUrlParser: true}, err => {
if (err){
console.error('Connection to DB failed');
\_ Server
\_ node_modules
\_ src
\_ config
\_ models
\_ resolvers
\_ types
\_ index.js <= this one
\_ .env
\_ package.json
const {ApolloServer} = require('apollo-server');
const connectDB = require('./config/db');
const typeDefs = require('./types');
const resolvers = require('./resolvers');
const models = require('./models');
const server = new ApolloServer({
typeDefs,
resolvers,
context: {models}
});
// port: process.env.PORT yet undefined but we will have this variable
// once we deployed to heroku
server.listen({port: process.env.PORT || 4000}).then(({url}) => {
console.log(`Server is ready at ${url}`);
query FirstQuery {
coins {
name
id
}
}
{
"data": {
"coins": []
}
}
mutation createCoin{
createCoin(input: {
name: "Ethereum"
}){
id
name
}
}
{
"data": {
"coins": [
{
"name": "Ethereum",
"id": "620a7804ded99924b9dda1fc"
},
{
"name": "Flux",
"id": "620a78c2ded99924b9dda200"
mutation deleteCoin {
deleteCoin(id: "620a7804ded99924b9dda1fc"){
id
}
}
{
"data": {
"coins": [
{
"id": "620a78c2ded99924b9dda200",
"name": "Flux"
},
{
"id": "620a78c8ded99924b9dda202",
"name": "Helium"