Hello everyone,
I have a problem with the payload size limit from ApolloServer.
My index.js file:
require('dotenv').config();
const {initMongo} = require('./utils/mongo');
const {logError} = require('./utils/logger');
const cron = require('node-cron');
const moment = require('moment');
const {connectRabbitMQ} = require('./utils/message-broker');
const {BADGE_SCHEDULE} = process.env;
(async() => {
await connectRabbitMQ();
await initMongo();
const {syncBadge} = require('./services/badge.service');
const {ApolloServer, gql} = require('apollo-server');
const scalarTypedefs = require('./typedefs/scalar.typedef');
const postTypedefs = require('./typedefs/post.typedef');
const userTypedefs = require('./typedefs/user.typedef');
const reactTypedefs = require('./typedefs/react.typedef');
const commentTypedefs = require('./typedefs/comment.typedef');
const commentKidTypedefs = require('./typedefs/comment-kid.typedef');
const reactResolvers = require('./resolvers/react.resolver');
const commentResolvers = require('./resolvers/comment.resolver');
const commentKidResolvers = require('./resolvers/comment-kid.resolver');
const postResolvers = require('./resolvers/post.resolver');
const {verifyAccessToken} = require('./services/auth.service');
const authDirective = require('./directives/auth.directive');
const User = require('./models/user.model');
const baseTypeDefs = gql`
type Query
type Mutation
`;
const server = new ApolloServer({
typeDefs: [
baseTypeDefs,
scalarTypedefs,
postTypedefs,
userTypedefs,
reactTypedefs,
commentTypedefs,
commentKidTypedefs,
],
resolvers: [
postResolvers,
reactResolvers,
commentResolvers,
commentKidResolvers,
],
schemaDirectives: {
auth: authDirective,
},
uploads: {maxFileSize: 1000000000, maxFiles: 10},
context: ({req}) => {
const authRegex = /^Bearer (?<token>.+)$/giu;
const regexResult = authRegex.exec(req ? req.headers.authorization : null);
const token = regexResult ? regexResult.groups.token : '';
if (!token) {
return null;
}
try {
const {sub, user: userData} = verifyAccessToken(token);
const user = new User(userData);
return {sub, user, roles: user.roles || user.role || null, token};
} catch ({message}) {
logError(message);
return null;
}
},
formatError: (error) => {
logError(error.message);
return error;
},
});
server.listen().then(({url, subscriptionsUrl}) => {
console.info(`🚀 Server ready at ${url}`);
console.info(`🚀 Subscriptions ready at ${subscriptionsUrl}`);
});
cron.schedule(BADGE_SCHEDULE, () => {
const yesterday = moment().subtract(1, 'days').startOf('day');
syncBadge(yesterday).then();
console.log('sync badge');
}, {});
})();
And the client submitted a request with an image larger than 200kb. Then the server gets a “Payload To Large” error.
This is the payload:
Are there any options to help increase payload size? Or do you have any solution to increase the payload size?
Thank you very much.