我在heroku上使用MongoLab插件设置了一个mongodb数据库。我的部署(只是一个REST API)成功构建,但是当我访问该站点时,我在浏览器中看到的只是这个错误:
{" name":" MongoError"," message":"未授权查询heroku_2vlv3f28.tags",&#34 ; $ err":"未授权查询heroku_2vlv3f28.tags","代码":13}
我还检查过以确保在使用我的index.js文件中的mongoose进行连接时使用了正确的凭据。
我的index.js文件的连接部分是:
// Connect to MongoDB
mongoose.connect('mongodb://<MY DB USERNAME>:<MY PASSWORD>@ds027415.mongolab.com:27415/heroku_2vlv3f28');
mongoose.connection.once('open', function() {
// Load the models.
app.models = require('./models/index');
// Load the routes.
var routes = require('./routes');
_.each(routes, function(controller, route) {
app.use(route, controller(app, route));
});
console.log('Listening on port 3000...');
server.listen(process.env.PORT || 3000);
我还尝试将?authMode=scram-sha1
添加到mongoose.connect行中,我尝试过该行,因为我看到它here(它没有解决问题)
答案 0 :(得分:0)
最后,您确定使用的是正确的凭据吗?如果没有,您可以使用以下方式获取数据库用户名和密码:
heroku config | grep MONGODB_URI
响应采用以下格式:
MONGOLAB_URI: mongodb://username:password@mlab.com:12345/db