使用 MongoDB、Node.js 和 Express 返回数据库信息的问题

阿迪尔阿里 |
const express = require('express');
const second = express();
const MongoClient = require('mongodb').MongoClient;
const assert = require('assert');
const url = 'mongodb://localhost:27017';

// Database Name
const dbName = 'myorders';

// Use connect method to connect to the server
MongoClient.connect(url, function(err, client) {
  assert.equal(null, err);
  console.log("The connection was awesome");

  const db = client.db(dbName);
  second.get('/Students',(req,res) => {
  const findStudents = function(db,call) {
  const collection = db.collection('Students');
    collection.find({}).toArray(function (err,result) {
     if (!err) {
       res.send(result)
     } else {
         console.log(err);
         call(err);
     }
});
}
});
client.close();
});
second.listen(3200,() => {
  console.log('We got it running');
});
module.exports = second;

所以我试图在网络服务器上显示我的 mongodb 信息,这里是屏幕截图

在此处输入图片说明

以上是MongoDB的学生和分数合集 在此处输入图片说明

上面是我的 Node.js 命令提示符,我收到了弃用警告。有什么办法可以解决吗?是否还有其他错误,为什么我无法在 Web 服务器中显示信息?

维吉利奥

要修复此弃用警告,您只需按照它说的做:将useNewUrlParse: true选项对象中的选项传递MongoClient.connect. 因此,您连接到 MongoDB 数据库的行将是:

MongoClient.connect(url, { useNewUrlParse: true }, function(err, client)

无论如何,这只是一个警告,而不是一个阻塞错误,并且您的应用程序正在运行。我认为您的代码中有几处错误,主要是您在与数据库的连接的回调中将要在 GET 上执行的函数声明为 /Students 并关闭该连接以便无法再访问数据. 我认为这段代码应该适合你:

const express = require('express');
const second = express();
const MongoClient = require('mongodb').MongoClient;
const assert = require('assert');
const dbUrl = 'mongodb://localhost:27017';
const dbName = 'myorders';
let db;

MongoClient.connect(url, (err, client) => {
    assert.equal(null, err);
    db = client.db(dbName);
    console.log("The connection was awesome");
});

second.listen(3200, () => {
    console.log('We got it running');
});


second.get('/Students', (req, res) => {
    db.collection('Students').find().toArray((err,result) => {
        if (!err) {
            res.send(result)
        } else {
            console.log(err);
            res.status(500).send(err);
        }
    });
});

编辑:

如果您认为不应该总是打开数据库,您应该在每次请求 /Students 时连接和关闭,如下所示:

second.listen(3200, () => {
    console.log('We got it running');
});


second.get('/Students', (req, res) => {
    MongoClient.connect(url, (err, client) => {
        if (err) return res.status(500).send(err);

        db = client.db(dbName);
        db.collection('Students').find().toArray((err,result) => {
            if (!err) {
                res.send(result)
            } else {
                console.log(err);
                res.status(500).send(err);
            }
            client.close();
        });
    });
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Node.js处理mongoDB的问题(使用Express和handlebars)

使用express,Node.js和MongoDB附加数组

使用node,mysql,express和pure js从数据库中删除一行

如何使用Node JS和Express在MySQL数据库中存储PDF

如何使用 node.js 和 mongodb 创建一个返回数据库数据的函数

使用Express,Mongodb作为服务器数据库的Node.js中的用户管理

Node.js,Express,Mongodb使用和尚数据库为空

无法使用Node.js和mongoDB按字母从mongodb数据库搜索

使用猫鼬和Express / Node Js提取数据

Mongodb和Express.js:基于模型自动创建数据库和集合

如何使用Node.js和Express在HTML上从Mongodb显示多个文档

在基于Node.js,Express和MongoDb的REST Api中使用绝对引用

使用express和node.js更新mongodb中的单个记录

使用Node.js / Express和Mongoose将图像存储在MongoDB中

使用 MongoDB Express React 和 Node.js 时有哪些存储图像的方法?

无法使用Node js(express)和MongoDB(mongoose)对用户配置文件进行审阅

使用Node.js,Express和Handlebars在导航栏中显示MongoDB文档的字段值

使用Node.js,Express,Mongoose和React将图像上传到MongoDB

使用Node.js和MongoDB限制返回的文档

使用Mongoose和Node.js更新MongoDB中的数据

使用node.js和angular更新数据库

使用express和node.js进行注册和登录

Node.js / Express和mongoose:通过自动拉入新数据建立“可观察”的mongodb Connection?

如何使用Node.js,Express.js从MongoDB中获取数据

如何使用express js作为支持连接mysql数据库和react

如何使用Node.js MongoDB Express.js创建用于登录和注册的简单静态API

使用NodeJS和Express从MongoDB检索数据

使用node.js设置MongoDB数据库连接

使用mongodb创建数据库node.js