This is just a starter example on how to build a GraphQL server with MongoDB database in Typescript.
The advanage of this solution is a strong type checking, thanks to Typescript, and a easy GraphQL schema definition using GraphQLSchema and GraphQLObjectType.
The logic for the database models are inside the src/db
folder while for the GraphQL types, query and mutation are inside the src/schema
folder.The schema is then built in the src/schema/index.ts
file.
For the authetication the method setupPassportAuth
in the file src/authetication.ts
will handle all the routes and access to the user table.
The main Express App entry point is src/server.ts
, it can be launch with the following commands:
For development (with live reload)
npm start
For production (app served from dist folder)
npm run build
In this example we open a MongoDB connection on mongodb://localhost:27017
and open the heros
database, so we need to make sure mongod
service is running and the default port is set to 27017
(or you can adjust the parameters in the src/server.ts file).
Run the express server (with npm start or npm build).
We need then to create a user to login with, we can create an admin user by visiting the debug url http://localhost:3000/add-admin-user
.
We can then login from the auth form by visiting http://localhost:3000/auth
(default username: admin
, password: admin
).
The login page will respond with an auth token
, if you use a client we can save it and set it in the headers for the following requests, if you use a Browser you can use an extension (like this for Chrome) to set the Authorization
header with the token
(the token need to be preceded by JWT
like JWT eyJhbGcixxxxxxxxx
.
Now you are ready to open the GraphQL inspector by visiting http://localhost:3000/graphql
and browse the schema and do query, mutation, etc.
MIT
这是一个 GraphQL 服务器,支持 Express, Connect, Hapi 和 Koa 示例代码: Express: import express from 'express';import bodyParser from 'body-parser';import { graphqlExpress } from 'graphql-server-express';const myGraph
Create GraphQL Server Create-graphql-server is a scaffolding tool that lets you generate a new Mongo/Express/Node.js GraphQL server project from the command line. After generating the project you can
GraphQL MongoDB Server A server boilerplate using GraphQL and MongoDB. Introduction This is a server boilerplate using GraphQL and MongoDB. Support subscriptions using GraphQL Yoga. Getting started Cl
GraphQL Server Boilerplates for Node.js Bootstrap your GraphQL server within seconds GraphQL boilerplates provide the perfect foundation for your GraphQL server, no matter if you're just getting start
json-graphql-server Get a full fake GraphQL API with zero coding in less than 30 seconds. Motivation I'd love to learn GraphQL, but it seems that I first have to read a book about GraphQL Types and Qu