【问题标题】:cannot connect to the mongo database无法连接到 mongo 数据库
【发布时间】:2020-01-17 16:23:07
【问题描述】:

我无法连接到数据库 mongo db。存在类型错误。我能怎么做? server.js:

let MongoClient = require("mongodb").MongoClient;
let express = require("express");
let bodyParser = require("body-parser");
let app = express();
let db;
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.get("/", function(req, res) {
  res.send("Hello API");
});

app.listen(3114, function() {
  console.log("API app started");
});
MongoClient.connect("mongodb://localhost:27017/test_db", {
  useUnifiedTopology: true,
  useNewUrlParser: true
});

控制台日志:

API app started
TypeError: Cannot read property 'collection' of undefined
at /home/bukrole/db.project/server.js:18:6

【问题讨论】:

    标签: node.js mongodb


    【解决方案1】:

    您只需在连接字符串中使用mongodb://localhost:27017/ 即可解决该错误。但是,您需要单独提及数据库名称作为选项。

    var db;
    MongoClient.connect("mongodb://localhost:27017", { useUnifiedTopology: true }, (err, client) => {
        db = client.db('test_db');
    });
    

    【讨论】:

    • (node:5188) DeprecationWarning:当前的服务器发现和监控引擎已被弃用,并将在未来的版本中删除。要使用新的服务器发现和监控引擎,请将选项 { useUnifiedTopology: true } 传递给 MongoClient 构造函数。
    • @Александр 应该可以正常工作,请正确检查。
    • 是的,它可以工作,但是我添加了 { useUnifiedTopology: true } 参数并且缺少警告。谢谢你的回答
    猜你喜欢
    • 2018-10-22
    • 1970-01-01
    • 2011-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-23
    • 2012-12-27
    • 2018-02-24
    相关资源
    最近更新 更多