I am trying to connect mongodb with node (ts).
while connecting I am getting this error "This expression is not callable. Type 'Promise<void>' has no call signatures"
data.ts
import mongoDb, { MongoClient } from "mongodb";
import dotenv from "dotenv";
dotenv.config();
export const mongoDBConnection = MongoClient.connect(
process.env.MONGODB_URL as string,
)
.then(async (client) => {
const database = client.db();
const collection = database.collection("todos");
const dataFromMongo = await collection.find().toArray();
console.log(dataFromMongo);
})
.catch(error => {
console.error("MongoDB connection error:", error);
});
app.ts
import express, { Request, Response } from "express";
import { router } from "./routes/routes";
import { mongoDBConnection } from "./database/data";
const app = express();
app.use(express.urlencoded({ extended: false }));
app.use(express.json());
app.use("/", router);
mongoDBConnection();
app.listen(8000, () => {
console.log("App is running at port 8000");
});
I am getting error in the line
mongoDBConnection();
mongoDBConnection
isn't a function so you can't call it.
So instead, try:
export const mongoDBConnection = () => MongoClient.connect(
...