Ошибка Client.db не определен (серверный API MongoDB)

#javascript #database #mongodb #express

#javascript #База данных #mongodb #экспресс

Вопрос:

Я пытаюсь получить данные из коллекции в моей серверной части MongoDB и продолжаю сталкиваться с ошибкой, что мой клиент не определен. Мне было интересно, сталкивался ли кто-нибудь с этим, и что нужно добавить, чтобы это работало?

Ошибка: клиент не определен. const db = client.db(‘products’);

 const express = require('express');
const app = express();
const morgan = require('morgan');
const bodyParser = require('body-parser');
const user = require("./routes/user");
const cors = require('cors');
const MongoClient = require('mongodb').MongoClient;
const mongo_uri = 'mongodb srv://***:***@cluster0.fetfl.gcp.mongodb.net/*****?retryWrites=trueamp;w=majority';
const db = client.db('products')
const collection = db.collection('brand')

MongoClient.connect(mongo_uri, { useNewUrlParser: true })
.then(client => {
    console.log('connected');
    const db = client.db('products');
    const collection = db.collection('brand');
    app.listen(port, () => console.info(`REST API running on port ${port}`));
}).catch(error => console.error(error));

app.get('/', (req, res) => {
    db.collection('brand').find().toArray().then(results => {
            console.log(results)
        })
        .catch(error => console.error(error))
})  

Ответ №1:

Я полагаю, что вы не client определили. То, что вы определили, это MongoClient . Поэтому, вероятно, код, который вы ищете, является:

 const db = MongoClient.db('products')
  

Сами объекты клиента не определены.

Комментарии:

1. Когда я добавил MongoClient, я получаю ту же ошибку — за исключением добавления к ней Mongo.

2. Вы изменили его в обоих местах? Похоже, вы используете его в двух местах.

3. У меня есть — это говорит мне, что это не функция.

4. Это сработало, когда я удалил объявление const в верхней части server.js досье. Я также изменил .then(client => {… на .then(MongoClient => {…