无法连接到 Mongo 数据库 [重复]

Posted

技术标签:

【中文标题】无法连接到 Mongo 数据库 [重复]【英文标题】:Cant connect to Mongo Database [duplicate] 【发布时间】:2018-10-22 10:06:32 【问题描述】:

对不起,如果这个问题是菜鸟问题(我是新手)...

我一直在尝试设置我的应用程序以连接到数据库,但我收到此错误,我似乎无法找到问题。

这是代码

    const express = require('express');
    const app = express();
    const ejs = require('ejs');
    const path = require('path');
    const mongo = require('mongodb').MongoClient;
    const dbUrl = 'mongodb://localhost:3000/contractformapp';
    const bodyParser = require('body-parser');
    const ObjectId = require('mongodb').ObjectId;

    mongo.connect(dbUrl, function(err, contract) 
        if (err) 
            console.log("Error connecting to the database");
         else 
            console.log("Connection to database was successful");
            contracts = contract.db('contractformapp').collection('contracts');
        
    );

    app.use(bodyParser.json());
    app.use(bodyParser.urlencoded( extended: false ));



    app.get('/', function (req, res) 
        contracts.find().toArray(function (err, docs) 
            if (err) 
                console.log(err);
                return;
            
            res.render('index',  docs: docs );
        );
    );


app.listen(3000, 'localhost', (err) => 
    if (err) 
        console.log('err');
     else 
        console.log('Server started listening');
    
);


app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

当我尝试运行 nodemon 并打开 http://localhost:3000/

Server started listening
Error connecting to the database
ReferenceError: contracts is not defined

【问题讨论】:

您的连接调用不正确:docs.mongodb.com/manual/reference/method/connect。 (谷歌真的没那么难) 【参考方案1】:

您的 mongo 服务器不应与您的 express 服务器位于同一端口。我认为 mongdb 的默认值是 27017,所以可能就是它所在的位置。

const dbUrl = 'mongodb://localhost:27017/contractformapp';

那个,并确保你的 mongodb 已经启动并运行。

【讨论】:

是的,我完全失败了,非常感谢。

以上是关于无法连接到 Mongo 数据库 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

无法使用带有 X509 用户的 mongoose 连接到 Mongo DB

Windows 上的本地 Mongo - 无法连接到服务器 127.0.0.1:27017,连接尝试失败

无法从节点连接到 docker 中的 mongo 副本集

无法使用php连接错误连接到mysql:无法连接到'localhost'(10061)上的MySQL服务器[重复]

mongo-express 没有连接到 mongodb

MongooseModule:无法连接到数据库。在带有 Mongo 的 dockerized Nestjs 应用程序上