#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 => {…