我使用heroku 上的MongoLab 插件设置了一个mongodb 数据库。我的部署(只是一个 REST API)成功构建,但是当我访问该站点时,我在浏览器中看到的只是以下错误:
{"name":"MongoError","message":"未授权查询heroku_2vlv3f28.tags","$err":"未授权查询heroku_2vlv3f28.tags","code":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 (它没有解决问题)
最佳答案
最后,您确定您使用的凭据正确吗?如果没有,您可以使用以下方法获取数据库用户名和密码:
heroku 配置 | grep MONGODB_URI
响应的格式如下:
MONGOLAB_URI:mongodb://用户名:密码@mlab.com:12345/db
关于node.js - 无法连接到附加到heroku部署的MongoLab数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34595747/