Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js MongoError:未在(DB名称)上授权执行命令_Node.js_Mongodb_Session_Express_Connect Mongo - Fatal编程技术网

Node.js MongoError:未在(DB名称)上授权执行命令

Node.js MongoError:未在(DB名称)上授权执行命令,node.js,mongodb,session,express,connect-mongo,Node.js,Mongodb,Session,Express,Connect Mongo,我使用Node.Js、Expressjs、mLab(托管我的数据库)和mongoDB 我得到一个错误,没有被授权在StreetForm(我的数据库名)上执行命令{LISTDINDEX:“会话”,光标:{} 这就是错误所在 这就是我连接数据库的方式 var dbHost = process.env.DB_HOST || 'localhost'; var dbPort = process.env.DB_PORT || 3002; var dbName = process.env.DB_NAME

我使用Node.Js、Expressjs、mLab(托管我的数据库)和mongoDB

我得到一个错误,没有被授权在StreetForm(我的数据库名)上执行命令{LISTDINDEX:“会话”,光标:{}

这就是错误所在

这就是我连接数据库的方式

var dbHost = process.env.DB_HOST || 'localhost';
var dbPort = process.env.DB_PORT ||  3002;
var dbName = process.env.DB_NAME || 'Mongodb';

var dbURL = 'mongodb://'+dbHost+':'+dbPort+'/'+dbName;

if (app.get('env') == 'development'){
// prepend url with authentication credentials // 
    dbURL = 'mongodb://'+process.env.DB_USER+':'+process.env.DB_PASS+'@'+dbHost+':'+dbPort+'/'+dbName;
}

app.use(session({
    secret: 'secret',
    proxy: true,
    resave: true,
    saveUninitialized: true,
    store: new MongoStore({ url: dbURL })
    })
);
这是我的图书馆

var http = require('http');
var express = require('express');
var session = require('express-session');
var bodyParser = require('body-parser');
var errorHandler = require('errorhandler');
var cookieParser = require('cookie-parser');
var MongoStore = require('connect-mongo')(session);
var dotenv = require('dotenv')
dotenv.load();
var app = express();
建立与数据库的连接

var crypto      = require('crypto');
var MongoDB     = require('mongodb').Db;
var Server      = require('mongodb').Server;
var moment      = require('moment');

/*
    ESTABLISH DATABASE CONNECTION
*/

var dbName = process.env.DB_NAME || 'mongodb';
var dbHost = process.env.DB_HOST || 'localhost'
var dbPort = process.env.DB_PORT || 3002;

var db = new MongoDB(dbName, new Server(dbHost, dbPort, {autoReconnect: true}), {w: 1});
db.open(function(err, d){
    if (err) {
        console.log(err);
    } else {
        if (process.env.NODE_ENV == 'live') {
            db.authenticate(process.env.DB_USER, process.env.DB_PASS, function(e, res) {
                if (e) {
                    console.log('mongo :: error: not authenticated', e);
                }
                else {
                    console.log('mongo :: authenticated and connected to database :: "'+dbName+'"');
                }
            });
        }   else{
            console.log('mongo :: connected to database :: "'+dbName+'"');
        }
    }
});

要使用mLabs,您似乎尚未创建数据库,因为它无法执行任何命令

您可以使用以下步骤启用它:

  • 从开发和实用程序中单击您正在使用的数据库
  • 单击用户选项卡
  • 单击添加数据库用户按钮
  • 输入所需的凭据

  • 因此,现在,当您验证在步骤5中输入的用户名和密码时,一个明显的问题是:您可以使用命令行工具和这些凭据连接到数据库吗?@Gianluca Yes。我还更新了错误的图像。并添加建立数据库连接的代码您是否已将权限授予该用户?你有没有找到解决办法?