应用程序未连接到Mongoose数据库

时间:2014-11-19 07:09:54

标签: 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);

4 个答案:

答案 0 :(得分:5)

您似乎使用了this blog帖子作为参考。我也这样做了,并没有像我预期的那样连接到我的Modulus数据库,我仔细检查了用户和密码以查看是否有任何错误并尝试使用我的机器上的mongo shell进行连接:

import numpy as np from numpy import array from itertools import combinations_with_replacement for t in combinations_with_replacement(range(1, 50), 3): if reduce(gcd, t) != 1: continue v = array(map(float, t)) u = v / np.linalg.norm(v) w = recover_integer_vector(u) assert np.allclose(w, v) or np.allclose(w, -v)

它工作正常,所以我很困惑并发现解决问题的方法是将猫鼬升级为\usepackage{oz, amsfonts} ... \begin{schema}{MusicStore} member: \pset NAME\\ orders: \pset (NAME\times ALBUM)\\ owns: \pset (NAME\times ALBUM) \ST {\bf dom}\mbox{ } orders \subseteq member\\ {\bf dom}\mbox{ } owns \subseteq member\\ \forall (m, a)\in orders.(m, a)\notin owns \end{schema} 而不是使用mongo jello.modulusmongo.net:27017/your_url -u <user> -p <pass>并且它完美无缺,它连接到Modulus数据库,虽然我不知道会发生什么或者为什么会发生,但它必须是猫鼬的东西。

答案 1 :(得分:2)

问题似乎是您的应用程序尝试连接的数据库具有不同的用户名密码组合。您需要正确的用户/通行证组合。

您的代码将在没有这两行的情况下运行,但您的应用程序将无法获得数据库支持。

您可以选择继续在本地运行mongodb。标准方法是运行monogod.exe并创建数据库并将mongoose.connect('mongodb://node:node@novus.modulusmongo.net:27017/Iganiq8o')更改为mongoose.connect('mongodb://localhost/<your-db>')。请注意,在这种情况下,db没有安全性(用户/通行证)。

答案 2 :(得分:1)

问题看起来就像是在尝试连接不在MongoDB中的数据库。 我也遇到了同样的问题,通过以下方式解决了问题:

  • 在mongo中创建了一个数据库。
  • 将路径更改为
    mongoose.connect('mongodb://localhost:27017/db_name');
  • 使用mongo命令启动MongoDB。

答案 3 :(得分:0)

错误是关于mongoDB中的身份验证&#39; MongoError:身份验证失败&#39;。

也许用户:传递节点:节点&#39;在您的本地数据库中不存在,检查您的mongoDB中是否存在该用户,或者与用户创建一个特定的用户:传递所需。

请参阅getUsers docs of mongoDB

祝你好运!