提问者:小点点

为什么我不能从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=true&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);

在我主持节目之后-

控制台输出


共1个答案

匿名用户

get路由位于connect方法内部-尝试重新组织代码,以便在发出请求时打开连接

    const client = new MongoClient(uri, { useNewUrlParser: true , useUnifiedTopology: true });
    app.get('/tasks',(req, res) => {
        client.connect(err => {
        const tasksCollection = client.db("VolunteerNetwork").collection("tasks");

        tasksCollection.find({})
        .toArray( ( err, documents) => {
          res.send(documents);
          console.log(documents);
          console.log('database connected');
        })
      })