#node.js #reactjs #mongodb #express
#node.js #reactjs #mongodb #экспресс
Вопрос:
Он вообще не показывает ошибок. Даже cosole показывает, что база данных подключена. Но он не показывает данные. Когда я перехожу к http://localhost:5000/tasks это показывает
Не удается ПОЛУЧИТЬ / задачи
чего мне здесь не хватает?
const express = require('express')
const bodyParser = require('body-parser');
const cors = require('cors');
const MongoClient = require('mongodb').MongoClient;
require('dotenv').config()
const uri = `mongodb srv://${process.env.DB_USER}:${process.env.DB_PASS}@cluster0.vwtzw.mongodb.net/${process.env.DB_NAME}?retryWrites=trueamp;w=majority`;
const app = express()
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cors());
const port =5000;
app.get('/', (req, res) => {
res.send('hello world!');
});
const client = new MongoClient(uri, { useNewUrlParser: true , useUnifiedTopology: true });
client.connect(err => {
const tasksCollection = client.db("VolunteerNetwork").collection("tasks");
app.get('/tasks',(req, res) => {
tasksCollection.find({})
.toArray( ( err, documents) => {
res.send(documents);
console.log(documents);
console.log('database connected');
})
})
});
app.listen(port);
после запуска он показывает —
-
не определено
-
база данных подключена
имя базы данных mongo: VolunteerNetwork.tasks
Комментарии:
1. Пожалуйста, не вставляйте изображения, вместо этого предоставьте форматированный текст.
2. Извините, отредактировал сообщение.
Ответ №1:
маршрут получения находится внутри метода connect — попробуйте реорганизовать код так, чтобы вы открывали соединение при выполнении запроса
const MongoClient = require('mongodb').MongoClient;
const uri = `mongodb://localhost:27017`;
const client = new MongoClient(uri, { useNewUrlParser: true , useUnifiedTopology: true });
router.get('/tasks',(req, res) => {
client.connect(err => {
const tasksCollection = client.db("VolunteerNetwork").collection("tasks");
tasksCollection.find({})
.toArray( ( err, documents) => {
res.send(documents);
console.log('database connected');
console.log(documents);
})
})
});
Комментарии:
1. с той же ошибкой? работает ли у вас hello world?
2. Да. привет, мир работает для меня. Но, когда я пытаюсь получить данные из mongo, используя localhost:5000/ tasks , это показывает, что ошибка и console.log(documents) возвращает undefined
3. извините, я не видел, как вы отредактировали вопрос — похоже, он не может найти коллекцию «задачи» .. это имя (чувствительно к регистру)?
4. Извините с моей стороны, потому что я недостаточно четко сформулировал вопрос. Теперь я добавил изображение имени базы данных. Я несколько раз проверял, не допустил ли я каких-либо орфографических ошибок, но не обнаружил ни одной. Чувствителен к регистру.
5. Есть ли что-нибудь в ошибке, которая возвращается?
Ответ №2:
Код работает отлично. Это точный подход. Моя ошибка заключалась в том, что я не предоставил доступ к имени пользователя для редактирования / чтения базы данных в MongoDB. Предоставление привилегии сделало работу выполненной.