Estoy tratando de cargar lo siguiente desde el archivo .env a index.js para la autenticación de MongoDB.
DB_USER:(my user name here) DB_PASS:(my password here)Lo he comprobado y aparentemente no hay problemas con el nombre de usuario y la contraseña.
También he añadido require('dotenv').config(); y process.env.DB_USER , process.env.DB_PASS a mi index.js.
const express = require('express'); const cors = require('cors'); const { MongoClient, ServerApiVersion } = require('mongodb'); require('dotenv').config(); const port = process.env.PORT || 5000; const app = express(); // middleware app.use(cors()); app.use(express.json()); // mongodb driver code const uri = `mongodb+srv://${process.env.DB_USER}:${process.env.DB_PASS}@[link to mongodb]`; console.log(uri); const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true, serverApi: ServerApiVersion.v1 }); async function run() { try { await client.connect(); const productCollection = client.db('emaJohn').collection('product'); app.get('/product', async (req, res) => { const query = {}; const cursor = productCollection.find(query); const products = await cursor.toArray(); res.send(products); }) } finally { } } run().catch(console.dir); // setup root app.get('/', (req, res) => { res.send('Ema John Server is running...'); }) app.listen(port, () => { console.log('Listening to port ', port); })El programa muestra el siguiente error, donde he usado console.log() para mostrar el contenido de la URI para MongoDB.
mongodb+srv://undefined:undefined@[here goes my link to mongodb] Listening to port 5000 MongoServerError: bad auth : Authentication failed. at Connection.onMessage (F:\Projects\ema-john-server\node_modules\mongodb\lib\cmap\connection.js:203:30) at MessageStream.<anonymous> (F:\Projects\ema-john-server\node_modules\mongodb\lib\cmap\connection.js:63:60) at MessageStream.emit (node:events:390:28) at processIncomingData (F:\Projects\ema-john-server\node_modules\mongodb\lib\cmap\message_stream.js:108:16) at MessageStream._write (F:\Projects\ema-john-server\node_modules\mongodb\lib\cmap\message_stream.js:28:9) at writeOrBuffer (node:internal/streams/writable:389:12) at _write (node:internal/streams/writable:330:10) at MessageStream.Writable.write (node:internal/streams/writable:334:10) at TLSSocket.ondata (node:internal/streams/readable:754:22) at TLSSocket.emit (node:events:390:28) { ok: 0, code: 8000, codeName: 'AtlasError', [Symbol(errorLabels)]: Set(0) {} }Por error puse ':' en lugar de '=' en el archivo .env. ¡Lo he corregido!