graphql-factory-express
v0.1.0
Published
GraphQL Factory Middleware for Express
Readme
GraphQL Factory Express
Creates graphql-factory middleware for express and provides a basic bodyParser middleware
Example
import express from 'express'
import * as graphql from 'graphql'
import GraphQLFactory from 'graphql-factory'
import factoryExpress from 'graphql-factory-express'
import definition from './definition'
const factory = GraphQLFactory(graphql)
const lib = factory.make(definition)
const PORT = 8080
const app = express()
app.use(factoryExpress.bodyParser)
app.use('/graphql', factoryExpress(lib, {
rootValue (value, req) {
value.jwt = req.token
}
}))
app.listen(PORT, err => {
if (err) {
console.log(err)
process.exit(1)
}
console.log('Server started on port:', PORT)
})API
GQLFactoryExpress (lib:GQLFactoryLibrary, [options:Object])
Creates a new middleware
Parameters
lib- GraphQL Factory Library containing schema helper methods[options]- [
timeout=10000] {Int}- Timeout in ms before a request fails with a timeout error - [
rootValue] {Object|Function} - Object or function used to modify therootValuebefore the request is sent. Function takes (value,request) as arguments - [
contextValue] {Object|Function} - Object or function used to modify thecontextValuebefore the request is sent. Function takes (value,request) as arguments - [
variableValues] {Object|Function} - Object or function used to modify thevariableValuesbefore the request is sent. Function takes (value,request) as arguments
- [
.bodyParser (req:Request, res:Response, next:Function)
Creates a new bodyParser, uses same parameters as the body-parser module except only parses
JSON
Request Body
Requests must be sent using the POST method with a JSON formatted body containing and object
with the following fields
schema- Name of the schema to make the request onrequestString- The graphql request stringrootValue- OptionalrootValuecontextValue- OptionalcontextValuevariableValues- OptionalvariableValuesoperationName- OptionaloperationName
Successful requests will return with a 200 status code with a JSON formatted body
