node.js - 应用程序未连接到 Mongoose 数据库

标签 node.js express mongoose

我无法连接到我的 mongoose 数据库。我只是不知道我的代码是否有问题,或者我是否需要安装更多的 mongoose 包。或者可能重新安装所有内容。谁能告诉我这是什么问题?

有问题的行是:

var mongoose   = require('mongoose');
mongoose.connect('mongodb://node:node@novus.modulusmongo.net:27017/Iganiq8o'); // connect to our database

应用程序是否应该自动连接到数据库?或者我需要在后台运行 mongod 吗?我的应用程序运行完美,无需这些线路即可连接到服务器。这是来自命令提示符的错误:

enter image description here

有人可以解释错误是什么以及我该如何解决吗?我不明白这里说的是什么。非常感谢。

完整代码:

// server.js

// BASE SETUP
// =============================================================================

// call the packages we need
var express    = require('express');        // call express
var app        = express();                 // define our app using express
var bodyParser = require('body-parser');

// configure app to use bodyParser()
// this will let us get the data from a POST
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

var port = process.env.PORT || 8080;        // set our port


var mongoose   = require('mongoose');
mongoose.connect('mongodb://node:node@novus.modulusmongo.net:27017/Iganiq8o'); // connect to our database

// ROUTES FOR OUR API
// =============================================================================
var router = express.Router();              // get an instance of the express Router

// test route to make sure everything is working (accessed at GET http://localhost:8080/api)
router.get('/', function(req, res) {
    res.json({ message: 'hooray! welcome to our api!' });
});

// more routes for our API will happen here

// REGISTER OUR ROUTES -------------------------------
// all of our routes will be prefixed with /api
app.use('/api', router);

// START THE SERVER
// =============================================================================
app.listen(port);
console.log('Magic happens on port ' + port);

最佳答案

看起来你使用了 this blog发布作为引用。我也这样做了,但它没有像我预期的那样连接到我的 Modulus 数据库,我仔细检查了用户和密码以查看是否没有任何问题,并尝试使用我机器上的 mongo shell 进行连接:

mongo jello.modulusmongo.net:27017/your_url -u <user> -p <pass>

它奏效了,所以我很困惑,发现解决问题的方法是将 mongoose 升级到 3.8.0而不是用过的3.6.13它完美地工作,它连接到 Modulus 数据库,虽然我不知道发生了什么或为什么会发生,但它一定是 Mongoose 的东西。

关于node.js - 应用程序未连接到 Mongoose 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27011007/

相关文章:

node.js - 是否有任何 Node 库可以重命名gridfs中的文件?

javascript - Node.js nwjs包编译错误: Invalid file descriptor to ICU data

javascript - mongodb -- count() 比 find() 慢多少?

node.js - 无法创建到 Node.js socket.io 服务器的跨域 websocket 连接

node.js - 默认 Node.js + Express.js 不运行

express - res.cookie 不适用于 apollo-server-express

node.js - 错误 [CredentialsError] : Missing credentials in config, 如果使用 AWS_CONFIG_FILE,设置 AWS_SDK_LOAD_CONFIG=1

node.js - 在 Node js中从树数组构建平面数组

node.js - Mongoose 可选的搜索查询参数?

node.js - 使用 firebase-admin 的 nodejs 中的错误方法 sendAll()