Hi coders.
I want to use typeorm in a serverless app in AWS.
I create a new connection in each handler and I also destroy the connection in the same handler.
The problem is that I sometimes get this message:
CannotConnectAlreadyConnectedError: Cannot create a “default” connection because connection to the database already established
Are there startup and shutdown callbacks I can use?
Is there another way to handle this?
Did I get something obvious wrong?
It looks to me like serverless functions sometimes have state from other calls and sometimes are completely separate instances.
Code for reference:
import express, { Request, Response } from 'express';
import { AppDataSource } from "../data-source";
import { Statistic } from "../entity/Statistic";
export const statisticsRoute = express.Router();
statisticsRoute.post("/v1/statistics", async (req : Request, res : Response) => {
let result = { status: 1 } as any;
let data = req.body;
try {
await AppDataSource.initialize();
let stats = new Statistic();
stats.sessionId = data.sessionId;
// …
await AppDataSource.manager.save(stats);
} catch (e) {
console.error("Error in statistics call: ", e);
res.statusCode = 500;
result = { status: 0, message: "API error." };
}
try {
await AppDataSource.destroy();
} catch (e) {
console.error("Error in closing db function: ", e);
}
res.setHeader("content-type", "application/json");
res.send(result);
});