我正在做一个简单的应用程序,获取,添加,显示新数据。这一切都运行良好,但今天它没有打开请求,应该显示数据库中的项目。基本上它只是永远加载。首先,它写了一些关于身份验证的内容,所以我启用了它 - 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,它在一两天前工作正常。
更新 我添加了调试选项并更改了一点openURI(我从应该获得管理员用户的数据库中澄清,从我得到它的文档,你从admin db获得管理员):
mongoose.set('debug',true);
mongoose.connection.openUri('mongodb://admin:password@localhost/db?authSource=admin');
答案 0 :(得分:0)
我认为与mongoClient有关。我将代码从connection.openURI更改回.connect。 它给了我弃用警告,并建议使用{useMongoClient:true},我做了,问题又回来了。 所以我把它设置为假,它消失了,警告再次出现在这里,但至少它是有效的。