mattwr18 00195f1615 Increase body parser limit
- The default limit is only 100kb
- we are getting many requests that exceed this limit
- not sure about what would be an appropriate limit, but have seen 50mb
  in many examples.
2020-02-10 19:16:41 +01:00

57 lines
1.4 KiB
JavaScript

import express from 'express'
import helmet from 'helmet'
import { ApolloServer } from 'apollo-server-express'
import CONFIG from './config'
import middleware from './middleware'
import { getNeode, getDriver } from './db/neo4j'
import decode from './jwt/decode'
import schema from './schema'
import webfinger from './activitypub/routes/webfinger'
import bodyParser from 'body-parser'
const driver = getDriver()
const neode = getNeode()
export const context = async ({ req }) => {
const user = await decode(driver, req.headers.authorization)
return {
driver,
neode,
user,
req,
cypherParams: {
currentUserId: user ? user.id : null,
},
}
}
const createServer = options => {
const defaults = {
context,
schema: middleware(schema),
debug: !!CONFIG.DEBUG,
tracing: !!CONFIG.DEBUG,
formatError: error => {
if (error.message === 'ERROR_VALIDATION') {
return new Error(error.originalError.details.map(d => d.message))
}
return error
},
}
const server = new ApolloServer(Object.assign({}, defaults, options))
const app = express()
app.set('driver', driver)
app.use(helmet())
app.use('/.well-known/', webfinger())
app.use(express.static('public'))
app.use(bodyParser.json({ limit: '50mb' }))
app.use(bodyParser.urlencoded({ limit: '50mb', extended: true }))
server.applyMiddleware({ app, path: '/' })
return { server, app }
}
export default createServer