In my lambda function, I tried to close the mongo connection as soon as I send a callback. But it has a problem.
When I send a request, the function performs its duties, send the callback and close the database connection.
When the second request is sent, the function times out.
When I remove the db.close() things work perfectly.
I think lambda re-use the connection for all the functions because I open the connection in the top of the handler:
// Connect to database
mongoose.connect(process.env.DATABASE_URL);
const handleCreateUser = async (event, context, callback) => {
// eslint-disable-next-line no-param-reassign
context.callbackWaitsForEmptyEventLoop = false;
const data = JSON.parse(event.body);
const { user, userProfile } = data;
await createUser({ callback, user, userProfile });
};
Any idea what how to fix this? Do we really have to close the connection at this point?