应用程序未打开从数据库获取find()的请求?

时间:2017-06-28 21:01:28

标签: node.js mongoose

我正在做一个简单的应用程序,获取,添加,显示新数据。这一切都运行良好,但今天它没有打开请求,应该显示数据库中的项目。基本上它只是永远加载。首先,它写了一些关于身份验证的内容,所以我启用了它 - https://docs.mongodb.com/master/tutorial/enable-authentication/但它没有帮助。我正在使用mongoose,它也显示了.connect的弃用警告,我将其更改为mongoose.connection.openUri(),仍然没有帮助。

当我尝试从数据库访问数据时,此页面将永远加载。其他无法从数据库获取数据的页面工作正常。

设置代码:

var express = require('express'),
app = express(),
bodyParser = require('body-parser'),
mongoose = require('mongoose'); mongoose.connection.openUri('mongodb://adminUser:password@localhost:3000/db');
app.use(bodyParser.urlencoded({extended: true}));
app.set('view engine', 'ejs');

有问题的要求:

app.get('/users', function(req, res) {
  User.find({}, function(err, result) {
    if(err) {
      console.log(err);
    } else {
      res.render('index', {users: result});
    }
  });
});

我使用:Windows 8.1 x64,它在一两天前工作正常。

mongod输出(如果需要)output by mongod

更新 我添加了调试选项并更改了一点openURI(我从应该获得管理员用户的数据库中澄清,从我得到它的文档,你从admin db获得管理员):

mongoose.set('debug',true);

mongoose.connection.openUri('mongodb://admin:password@localhost/db?authSource=admin');

现在mongod显示的内容如下:enter image description here

1 个答案:

答案 0 :(得分:0)

我认为与mongoClient有关。我将代码从connection.openURI更改回.connect。 它给了我弃用警告,并建议使用{useMongoClient:true},我做了,问题又回来了。 所以我把它设置为假,它消失了,警告再次出现在这里,但至少它是有效的。