# MongoDB verbindung aufbauen



## coldstone28 (6. Juni 2020)

Hallo zusammen,

habe ein problem beim verbindung aufbauen zu MongoDB.


```
var MongoClient = require('mongodb').MongoClient,format = require('util').format;

MongoClient.connect('mongodb://xxxxxxxxxxxxxxx:27017', function(err, db){

    if(err){
        throw err;
    } else {
        console.log("Verbunden");
    }
    db.close();
});
```

unter den xxxxxx muss ja laut doku der hostname rein. 
Wenn ich jetzt aber über node, mongodb auf meinen webserver installiert habe, was muss denn dann dort stehen?

Habe es mal mit 

```
MongoClient.connect('mongodb://localhost/datenbank', function(err, db){
```
aber ist ja nicht lokal auf meinem Rechner, sondern auf dem Server installiert. 
Verbindung kommt nicht zustande.


----------



## ComFreek (6. Juni 2020)

coldstone28 hat gesagt.:


> Wenn ich jetzt aber über node, mongodb auf meinen webserver installiert habe, was muss denn dann dort stehen?


Läuft ein Mongodb Server überhaupt oder hast du _nur_ installiert, aber nicht gestartet?

Du müsstest den Hostnamen oder die IP-Adresse herausbekommen, unter der dein Server von außen aus ansprechbar ist. Hast du eine eigene IP-Adresse für deinen Server?


----------



## coldstone28 (7. Juni 2020)

Ich versuche mit `service mongodb start` es zu starten.
Es wird aber folgende fehlermeldung in der Console ausgegeben. `Failed to start mongodb.service: Unit mongodb.service not found.`



ComFreek hat gesagt.:


> Du müsstest den Hostnamen oder die IP-Adresse herausbekommen, unter der dein Server von außen aus ansprechbar ist. Hast du eine eigene IP-Adresse für deinen Server?


Den hostnamen habe ich per `hostname -f` erhalten und auch eingegeben.


----------



## ComFreek (7. Juni 2020)

coldstone28 hat gesagt.:


> Es wird aber folgende fehlermeldung in der Console ausgegeben. `Failed to start mongodb.service: Unit mongodb.service not found.`


Hast du schon mal diesen Fehler gegoogelt? Da kommt sofort Failed to start mongod.service: Unit mongod.service not found.


----------



## coldstone28 (8. Juni 2020)

Habe ich versucht. Leider ohne erfolg.
https://askubuntu.com/questions/842...-04-or-18-04-installing-mongodb/842599#842599Habe es auch nach dieser anleitung versucht, aber spätestens bei `systemctl enable mongod.service`
bekomme ich die fehlermeldung `Failed to start mongod.service: Unit mongod.service not found.`

UPDATE: Hat jetzt endlich geklappt. Vielen dank für die Unterstützung. Mongodb läuft jetzt.


----------



## coldstone28 (8. Juni 2020)

Ich hätte da doch nochmal eine frage. 

Wenn ich mich mit dem Server verbinde und die JavaScript Datei direkt über die Konsole starte, kriege ich eine verbindung zu Mongodb und meine collection wird erstellt. 

```
var MongoClient = require('mongodb').MongoClient;


MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("neuerflieger");
  var myobj = { Flieger: "Ti Fighter", Schusskraft: "50" };
  dbo.collection("neuerflieger").insertOne(myobj, function(err, res) {
    if (err) throw err;
    console.log("Flieger wurde hinzugefügt");
    db.close();
  });
});
```

Wenn ich aber diesen Code in einen Html Dokument reinpacke und vom rechner aus die Seite aufrufe, 
kommt die verbindung nicht zustande und dementsprechent wird auch in der Datenbank nichts angelegt. 

Mache ich mir das zu einfach oder liegt das Problem eventuell an:

```
var url = "mongodb://localhost:27017/";
```
Ich meine wegen localhost?

Meine test.html:


```
<html>
  <head>
    <title>Space Run</title>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.0.11/handlebars.min.js"></script>
  </head>
  <body>
    
    <script id="ausgabe" type="text/x-handlebars-template">
      <p>Herzlich Willkommen {{spieler}}! </p>
      <p>Sie fliegen heute mit dem {{raumschiff}}!</p>
      <p>Guten Flug zum {{ziel}}!</p>

    </script>
 
<div id="content"></div>

<button id="mongodb_connect" onclick="connect_db()">Verbindung zur Datenbank herstellen!</button>

<p id="connect">Verbindung ?</p>
 
    <script type="text/javascript">
      var source = document.getElementById("ausgabe").innerHTML;
      var template = Handlebars.compile(source);
      var context = {spieler: "monkey", raumschiff: "Tie Fighter", ziel: "Mars"};
      document.getElementById("content").innerHTML = template(context);
    </script>

    <script>

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("neuerflieger");
  var myobj = { Flieger: "Ti Fighter", Schusskraft: "50" };
  dbo.collection("neuerflieger").insertOne(myobj, function(err, res) {
    if (err) throw err;
    console.log("Flieger wurde hinzugefügt");
    db.close();
  });
});


    </script>
  </body>
</html>
```


----------

