2017-08-11 16 views
0

node.jsを使用してlocalhostからmlabデータベースに接続しようとしています。ここに私のURLはmongodb://username:[email protected]:51651/learner;(正しいユーザー名とパスワード)です。アプリケーションがmongoerrorを投げています:認証に失敗しました。同じコードとURLでhttps://glitch.comで同じことを試してみましたが、うまくいきました。ここに私のCODEがあります。locahostからmlabデータベースに接続できません

var express = require('express'); 
    var app = express(); 
var mongodb = require('mongodb'); 
var dotenv = require('dotenv'); 
dotenv.load(); 
var MongoClient = mongodb.MongoClient; 

app.listen(3000); 
app.use('',function(req,res){ 
    MongoClient.connect(process.env.url, function(err,db){ 
     if(err){console.log("unable to connect to the database error: " + err);} 
     else{ 
      console.log("connection established"); 

     db.createCollection("customers",function(err,res){ 
      if(err) throw err; 
      else {console.log("db created");} 
      db.close(); 
     }) 
    } 

}) 
res.end("hello"); 
}) 

あなたはエラーの原因とその解決方法を教えてください。

+0

認証エラーには本当に1つの理由があります。これは、指定した資格情報が実際には正しくないということだけです。特にここでは、 'process.env.url'を使用しています。これは、この環境変数が実際にはまったく設定されていないか、間違って何かをタイプしたことを意味します。他の原因はありません。だからこそ私たちは質問を削除し続けます。 –

+0

同じenv変数をコピーして、問題なく動作しました。うまくいきました。 – Kiran

+0

もう一度やり直してみます。 ** ITは同じではありません**。 **誤った資格情報**を提供した以外の認証エラーの理由はありません。それが別の問題であれば、それは別のエラーになるでしょう。あなたは同じ詳細を持っていません。すべてを確認して修正してください。 –

答えて

0

問題は、ローカル環境で、process.env.urlがセミコロンを含むすべてのURLを読み込み、間違ったURLが返されることです。不具合のように、何とかセミコロンを除いたURLを読むとprocess.env.urlとなります。だから、@ Neil Lunnは、認証エラーの唯一の理由は間違ったURLまたは間違った資格情報だと言っています。

関連する問題