gpt4 book ai didi

javascript - node.js mongoError 未授权管理员执行命令

转载 作者:可可西里 更新时间:2023-11-01 09:56:56 24 4
gpt4 key购买 nike

我正在研究 Node.js,我找不到任何解决方案。我的控制台向我发送了很多消息,其中一条更特别奇怪:GET/signup - - ms - -有人对此有任何想法吗?提前致谢!

///////////////////////inclusion des librairies
// 3 librairies pour gérer les messages flash
var session = require('express-session');
var cookieParser = require('cookie-parser');
var flash = require('express-flash');
//passerelle pour se connecter à node(node->bdd)
var passport =require('passport');
// stockage des sessions(id) et cookies côté serveur uniquement
var mongoStore =require('connect-mongo')(session); // le session de express-session

//inclure al librairie express
var express = require('express');
// Inclusion de la librairie morgan (faire le lien avec la base de données)
var morgan = require('morgan');

// Inclusion de mongoose
var mongoose = require('mongoose');

//Inclusion moteur templates ejs
var ejs = require('ejs');
var engine =require('ejs-mate');
// Inclusion de body parser pour les données des formulaires
var bodyParser = require('body-parser');



/////////////////////fin des librairies ///////////////

// stocker l'objet express dans une variable plus courte

var app = express();



//inclure le fichier secret.js
var secret = require('./config/secret');
////////////connexion à la bd avec mongoose///

mongoose.connect(secret.database, // voir pour création de db en ligne !!
{useNewUrlParser:true},
function(err){
if(err){console.log(err)
}else{
console.log('connexion OK');
}
});


/////////////////// gestion des Passerelles (middleware)/////////////////////////
app.use(express.static(__dirname + '/public')); // pour le style
app.use(morgan('dev'));
app.engine('ejs',engine);
app.set('view engine','ejs');
// les deux lignes ci-dessous pour récupérer les données des formulaires
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended:true}));
// affichage messages flash et gestion des cookies
app.use(cookieParser());
app.use(session({
resave :true,
saveUninitialized:true,
secret :secret.secretKey,
store : new mongoStore({
url:secret.database,
autoReconnect:true })
}));

app.use(flash());

//authentification
app.use(passport.initialize());
app.use(passport.session());


////////////////définition du chemin des pages principales////////////////////////

var mainRoutes =require('./routes/main');
app.use(mainRoutes);

var userRoutes =require('./routes/user');
app.use(userRoutes);



//app.post()

//app.put()

//app.delete()

控制台说:

Le serveur est lancé sur le port3000 (node:7828) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead. connexion OK (node:7828) UnhandledPromiseRejectionWarning: MongoError: not authorized on admin to execute command { insert: "system.indexes", documents: [[{ns admin.sessions} {key [{expires 1}]} {name expires_1} {expireAfterSeconds 0} {unique false}]], ordered: true } at Function.MongoError.create (C:\Users\Utilisateur\Desktop\NODE\ECommerce\node_modules\connect-mongo\node_modules\mongodb-core\lib\error.js:31:11) at C:\Users\Utilisateur\Desktop\NODE\ECommerce\node_modules\connect-mongo\node_modules\mongodb-core\lib\connection\pool.js:497:72 at authenticateStragglers (C:\Users\Utilisateur\Desktop\NODE\ECommerce\node_modules\connect-mongo\node_modules\mongodb-core\lib\connection\pool.js:443:16) at Connection.messageHandler (C:\Users\Utilisateur\Desktop\NODE\ECommerce\node_modules\connect-mongo\node_modules\mongodb-core\lib\connection\pool.js:477:5) at TLSSocket. (C:\Users\Utilisateur\Desktop\NODE\ECommerce\node_modules\connect-mongo\node_modules\mongodb-core\lib\connection\connection.js:333:22) at TLSSocket.emit (events.js:182:13) at addChunk (_stream_readable.js:283:12) at readableAddChunk (_stream_readable.js:264:11) at TLSSocket.Readable.push (_stream_readable.js:219:10) at TLSWrap.onStreamRead [as onread] (internal/stream_base_commons.js:94:17) (node:7828) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1) (node:7828) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code. GET /login - - ms - - GET /login - - ms - - GET /login - - ms - - GET /signup - - ms - -

最佳答案

npm 模块 connect-mongo 无法处理 mongodb+srv:// 连接字符串。您必须使用以 mongodb:// 开头的旧连接字符串类型。

如果您使用的是 MongoDB Atlas,我建议转到集群 View 上的连接,然后连接您的应用程序,然后选择 Node.js 2.2 版。 12,不是 3.0

您可能还需要将连接字符串中的 /test/admin 更改为带有您的数据库名称的 /TheNameOfYourDatabase。 (参见下面的 radihuq's answer)

关于javascript - node.js mongoError 未授权管理员执行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54986716/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com