2017-08-21 10 views
0

Node.jsでAPI-RESTを構築しようとしています。前にもう1つはやったけど、今はMongoDBデータベースに接続できません。このデータベースには認証プロセスがありますが、何とかして、資格情報が期待どおりに機能していません。私はそれらとデータベースにローカルに接続することができますが、リモート接続を試みるときは接続できません。Node.js APIからMongoDBへの接続

私はこれについて少しずつ読んでいますが、いくつかの更新のために、私が使用しようとしている接続文字列はまったく動作していないようです。ここではいくつかのコードは次のとおりです。

config.jsの:

module.exports = { 
port: process.env.PORT || XXXX, 
    db: process.env.MONGODB || 'mongodb://user:[email protected][IP adresss]:[port]/[databaseName]', 
    TOKEN_SECRET: process.env.TOKEN_SECRET || 'aSecretToken' 
} 

index.js:

'use strict' 

const mongoose = require('mongoose') 
const app = require('./app') 
const config = require ('./config') 

mongoose.Promise = global.Promise; 
mongoose.connect(config.db, (err,res) => { 
    if(err){ 
    return console.log(`Error when connecting database: ${err}`) 
    } 
    console.log('Connection to Mongo database successful...') 

    app.listen(config.port,() => { 
    console.log(`API REST running on [IP Adress]:${config.port}`) 
}) 
}) 

私はいつものように、これは前に頼まれるかもしれない、ということを知っている、と私はそれがでなければならないと思います世界の最もシンプルなものですが、私は本当にこれで固執しています***!

ありがとうございます、皆さん!

EDIT:エラーログ

(node:3169) DeprecationWarning: `open()` is deprecated in mongoose >= 4.11.0, use `openUri()` instead, or set the `useMongoClient` option if using `connect()` or `createConnection()`. See http://mongoosejs.com/docs/connections.html#use-mongo-client 
Db.prototype.authenticate method will no longer be available in the next major release 3.x as MongoDB 3.6 will only allow auth against users in the admin db and will no longer allow multiple credentials on a socket. Please authenticate using MongoClient.connect with auth credentials. 
Error when connecting database: MongoError: Authentication failed. 
(node:3169) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): MongoError: Authentication failed. 
+0

エラーログを表示してください – ZeroCho

+0

申し訳ありませんが、私はそれについて完全に忘れてしまった!既に質問に追加されています。 – camnuel

+0

診断が非常に難しいです。そのエラーは非常に一般的です。正しいID、パスワード、ホスト、dbnameを入れてもよろしいですか?また、そのポートがアクセス可能であることを確認してください。 – ZeroCho

答えて

1
mongoose.connect("mongodb://user:[email protected][IP adresss]:[port]/[databaseName]",{auth:{authdb:"admin"}},() => {}) 

は、そのオプションをつけてみてください。

+0

それは動作していない、またはそれを動作させる方法がわかりません=(他の提案? – camnuel

+0

https://stackoverflow.com/questions/35230890/how-to-reuse-mongodb-connection-through-promise – agm1984

関連する問題