2016-03-24 10 views
10

Ich versuche, eine Verbindung zu einer Datenbank herzustellen, die ich bei MLab gehostet habe. Ich benutze die StrongLoop API. Ich habe die Konfigurationsinformationen für meine gehosteten Datenbanken in meine Dateien datasources.json und config.json gestellt, aber wenn ich das Verzeichnis mit npm start starte, bekomme ich throw new Error ('double colon in host identifier';) unter api \ node_modules \ mongodb \ lib \ url_parser.js: 45.Fehler: "Doppelter Doppelpunkt in Host-ID"

Ich habe auch dafür gesorgt, das Loopback-Connecter-Mongodb Npm-Paket zu installieren.

Hier ist ein Ausschnitt aus datasources.json (ohne die eigentlichen Datenbankdetails, natürlich):

{ 
 
    "db": { 
 
    "name": "db", 
 
    "connector": "mongodb", 
 
    "host": "ds047355.mlab.com", 
 
    "database": "dbtest", 
 
    "username": "user", 
 
    "password": "fakepassword", 
 
    "port": 47355 
 
    } 
 
}

Hier ist die config.json ist Datei:

{ 
 
    "restApiRoot": "/api", 
 
    "host": "ds047355.mlab.com", 
 
    "port": 47355, 
 
    "remoting": { 
 
    "context": { 
 
     "enableHttpContext": false 
 
    }, 
 
    "rest": { 
 
     "normalizeHttpPath": false, 
 
     "xml": false 
 
    }, 
 
    "json": { 
 
     "strict": false, 
 
     "limit": "100kb" 
 
    }, 
 
    "urlencoded": { 
 
     "extended": true, 
 
     "limit": "100kb" 
 
    }, 
 
    "cors": false, 
 
    "errorHandler": { 
 
     "disableStackTrace": false 
 
    } 
 
    }, 
 
    "legacyExplorer": false 
 
}

Haben Sie irgendwelche Ideen?

+2

Sie haben den Host und den Port innerhalb des 'config.json' als Datenquelle eine, und Das ist nicht ihr Platz.Die Konfiguration sollte den Host und den Port enthalten, an dem Loopback den Node-Server ausführen soll, der lokal '0.0.0.0: 3000' sein könnte. – Rabea

+0

Danke für Ihre Hilfe Rabee! Ich habe den Host als '0.0.0.0' in' config.json' hinzugefügt und den Port als '3000' hinzugefügt, aber ich bekomme immer noch den gleichen Fehler ... –

+0

Es kann auch sein, wenn Sie': 'oder'/'verwenden in deinem mongodb passwort –

Antwort

5

Ich löste schließlich mein Problem mit diesem Fehler. Es wurde als http://0.0.0.0/:8080 einen meines Server-URLs zu lesen, aber wurde behoben, wenn ich zu geändert http://0.0.0.0:8080

Hoffnung, dies hilft Ihnen oder jemand anderes.

+1

was ist, wenn du dich mit mlab verbindest –

2

Es passiert im Allgemeinen, wenn Sie falsche Informationen über Ihre URL bereitstellen. In meinem Fall stellte ich die url.com/db_name statt url.com

1

zur Verfügung Ich habe die Lösung!

Während meiner Zeit mit Self-Hosting auf Ubuntu konnte ich meine settings.json nicht laden. Aus irgendeinem Grund musste ich den ganzen weißen Raum daraus entfernen.

Also gehe ich endlich zu Meteor Galaxy über, folge ihrem Tutorial und erhalte alle möglichen Mongo-Fehler. Also, was zum Teufel, lassen Sie den ganzen weißen Raum entfernen, richtig?

tldr; Legen Sie Ihre gesamte setting.json auf einer Linie

Check www.skyrooms.io sehen zu laufen: D

0

Stellen Sie sicher, Sie nicht haben seltsame Zeichen in es (zB @#$%^:,/.), hatte ich einige und bekam, dass Fehlermeldung. Das Passwort wurde in ein alphanumerisches Passwort geändert und funktioniert einwandfrei.

0

Ich habe den gleichen Fehler und endlich lösen. Mein previuos Datenquelle json:

"db": { 
    "host": "mongodb://127.0.0.1", 
    "port": 27017, 
    "url": "", 
    "database": "dbname", 
    "password": "12345", 
    "name": "db", 
    "user": "admin", 
    "connector": "mongodb" 
} 

Dann füllte ich die URL-Wert wie folgt aus:

"db": { 
    "host": "mongodb://127.0.0.1", 
    "port": 27017, 
    "url": "mongodb://127.0.0.1:27017/dbname", 
    "database": "dbname", 
    "password": "12345", 
    "name": "db", 
    "user": "admin", 
    "connector": "mongodb" 
}