Estou recebendo um erro de tipo quando tento carregar minha conexão db. Meu arquivo db.js:
const { MongoClient } = require('mongodb');
const uri = 'mongodb://localhost:27017/mydatabase';
let db = null;
async function connectDB() {
console.log("Did you make it");
const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology:true});
try {
await client.connect();
db = client.db();
console.log("connected to MongoDB");
} catch(err) {
console.error("Could not connect to MongoDB", err);
}
}
Meu arquivo server.js
// import DB connection
const { connectDB } = require('./db.js');
const app = express();
const port = process.env.port || 3000;
app.get('/', (req,res) => {
res.send('Hello from Express and MongoDB');
});
connectDB().then(() => {
app.listen(port, () => {
console.log('Server is running on port ',port);
});
});
Se eu comentar connectDB().then(() => {
e fechar });
. A página carrega. Então eu sei que essa parte está correta. O erro que eu recebo quando deixo em. server.js:13
connectDB().then(() => {
TypeError: connectDB is not a function.
Parece ser uma função para mim, mas não sei reagir, então qualquer ajuda seria muito apreciada.
Olá li com atenção e vejo o problema
Você está usando require para importar
connectDB
, mas na declaração export do db.js, você não está exportando explicitamente como uma exportação nomeada. Em vez disso, você está definindo aconnectDB
função dentro do arquivo db.js, mas não está exportando-a corretamente.Solução
Para resolver isso, você precisa exportar corretamente
connectDB
do arquivo db.js e certificar-se de que está importando-o corretamente no seu arquivo server.js.Exportar connectDB de db.js
No seu db.js, você deve exportar explicitamente a
connectDB
função assim:Importar connectDB em server.js
Agora, no seu arquivo server.js, certifique-se de que você está importando corretamente a
connectDB
função usandorequire()
: