提问者:小点点

如何解决猫鼬连接未知?


我正在用Node、Express和MongoDB构建一个REST api服务。我安装了MongoDB,它在我的PC上运行正常,本地主机:27017。我可以添加集合并阅读它们。在我的app.js文件中,我有这样的设置


    var express = require('express');
    var mongoose = require('mongoose');
    var bodyParser = require('body-parser');

    mongoose.connect('mongodb://127.0.0.1:27017/bookAPI');

    var db = mongoose.connection;
    db.on('error', console.error.bind(console, 'connection error:'));
    db.once('open', function callback () {
      console.log("h");
    });


    var app = express();
    app.use(bodyParser.urlencoded({ extended: true }));
    app.use(bodyParser.json());

    var port = process.env.PORT || 3000;

    app.use('/api', require('./routes/api.js'));



    app.listen(port, function(){
        console.log('Running on port ' + port);
    });

 

我总是得到一个错误-mongoerror-cannot connect UNKNOWN我搜索了几个小时,没有找到任何解决方案。我该如何修复它,使它可以连接到MongoDB(工作正常)...?


共2个答案

匿名用户

我解决了这个问题,安装了稳定的猫鼬。它是mongoose 4.x,我已经在WinXP中安装了3.8(npm install mongoose@3.8.*)。

匿名用户

const dbpath = "mongodb+srv://127.0.0.1/bookAPI";

// Data connection
mongoose.connect(dbpath, {user: 'username', pass: 'password', useUnifiedTopology: true , useNewUrlParser: true })
  .then(()=> console.log("Now connected to MongoDB!"))
  .catch(err=> console.error("Something went wrong", err));

我用的是指南针,这段代码工作得非常好。