mirror of
https://github.com/sergeyyarkov/next-apollo-graphql-setup.git
synced 2026-10-11 10:19:43 +03:00
➕ added graphql server
This commit is contained in:
parent
a5d2501083
commit
01e49f74b3
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
node_modules
|
||||||
|
package-lock.json
|
||||||
@ -5,8 +5,8 @@
|
|||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "npm run --prefix ./client build",
|
"build": "npm run --prefix ./client build",
|
||||||
"dev": "npm run --prefix ./client dev",
|
"dev": "concurrently \"npm run --prefix ./server/ dev\" \"npm run --prefix ./client/ start\"",
|
||||||
"start": "npm run --prefix ./client start"
|
"start": "concurrently \"npm run --prefix ./server/ start\" \"npm run --prefix ./client/ start\""
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
|||||||
21
server/package.json
Normal file
21
server/package.json
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"name": "graphql-tut",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "",
|
||||||
|
"main": "index.js",
|
||||||
|
"scripts": {
|
||||||
|
"dev": "nodemon server/app.js",
|
||||||
|
"start": "node server/app.js"
|
||||||
|
},
|
||||||
|
"keywords": [],
|
||||||
|
"author": "",
|
||||||
|
"license": "ISC",
|
||||||
|
"dependencies": {
|
||||||
|
"cors": "^2.8.5",
|
||||||
|
"express": "^4.17.1",
|
||||||
|
"express-graphql": "^0.9.0",
|
||||||
|
"graphql": "^14.6.0",
|
||||||
|
"mongoose": "^5.9.2",
|
||||||
|
"nodemon": "^2.0.2"
|
||||||
|
}
|
||||||
|
}
|
||||||
35
server/schema/schema.js
Normal file
35
server/schema/schema.js
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
const graphql = require('graphql');
|
||||||
|
|
||||||
|
const { GraphQLObjectType, GraphQLString, GraphQLSchema, GraphQLID, GraphQLList } = graphql;
|
||||||
|
|
||||||
|
const Articles = [
|
||||||
|
{id: 1, title: 'Article 1'},
|
||||||
|
{id: 2, title: 'Article 2'},
|
||||||
|
{id: 3, title: 'Article 3'},
|
||||||
|
{id: 4, title: 'Article 4'},
|
||||||
|
{id: 5, title: 'Article 5'}
|
||||||
|
]
|
||||||
|
|
||||||
|
const ArticleType = new GraphQLObjectType({
|
||||||
|
name: 'Article',
|
||||||
|
fields: () => ({
|
||||||
|
id: { type: GraphQLID },
|
||||||
|
title: { type: GraphQLString }
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
const Query = new GraphQLObjectType({
|
||||||
|
name: 'Query',
|
||||||
|
fields: {
|
||||||
|
articles: {
|
||||||
|
type: new GraphQLList(ArticleType),
|
||||||
|
resolve() {
|
||||||
|
return Articles
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
module.exports = new GraphQLSchema({
|
||||||
|
query: Query
|
||||||
|
});
|
||||||
16
server/server/app.js
Normal file
16
server/server/app.js
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
const express = require('express')
|
||||||
|
const graphqlHTTP = require('express-graphql')
|
||||||
|
const schema = require('../schema/schema')
|
||||||
|
const cors = require('cors')
|
||||||
|
|
||||||
|
const app = express()
|
||||||
|
|
||||||
|
app.use(cors())
|
||||||
|
app.use('/graphql', graphqlHTTP({
|
||||||
|
schema,
|
||||||
|
graphiql: true
|
||||||
|
}))
|
||||||
|
|
||||||
|
const PORT = 3005
|
||||||
|
app.listen(PORT, () => console.log(`Server listen port ${PORT}...`))
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user