Uri: Mit Node.js Datenbankeinträge auf seine Webseite anzeigen.

Hallo, ich lerne gerade node.js und habe ein Formular erstellt:

<form action="/" method="post">
	<input type="text" name="uname" id ="uname"/>
	<input type= reset name="reset" id = "reset" />
	<input type="submit" name="submit" id="submit" />		
</form>

Das schickt die Daten an server.js:

app.post('/',function(req,res){
  var user_name=req.body.uname;


var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'root',
  password : ''
  
});

connection.connect();


connection.query('insert into MyTestDB.users (firstname) values("'+ user_name +'")', function(err, rows, fields) {
  if (err) throw err;
});

connection.query('select * from MyTestDB.users' , function(err, results) {
  if (err) throw err;
  console.log(results);
});

connection.end();
  res.end();
});

Server.js verbindet sich mit der Datenbank schreibt den namen in MyTestDB.users und holt speichert die Tabelle users in results in einer untergeordneten funktion von app.post

Dann wird die ganze Tabelle in die Konsole geschrieben und ich sehe nur noch weiß statt meine index.html zu sehen. Ich verstehe auch nicht ganz wie ich die variable results auf meine index.html angezeigt bekomme.

Ich hoffe mir kann einer helfen.

Gruß Uri

  1. Tach!

    ich lerne gerade node.js und habe ein Formular erstellt:

    Das hat jetzt weniger mit node.js zu tun, sondern mit dem Browserverhalten bei Formularen.

    <form action="/" method="post">
    	<input type="text" name="uname" id ="uname"/>
    	<input type= reset name="reset" id = "reset" />
    	<input type="submit" name="submit" id="submit" />		
    </form>
    

    Das Formular wird abgesendet an die angegebene Adresse und das was auf diesen Request als Response kommt, wird die neue Seite.

    Dann wird die ganze Tabelle in die Konsole geschrieben und ich sehe nur noch weiß statt meine index.html zu sehen.

    Sieht wohl so aus, als ob du keine Response schickst, und damit hat der Browser nichts anzuzeigen.

    Ich verstehe auch nicht ganz wie ich die variable results auf meine index.html angezeigt bekomme.

    Indem du entweder ein komplettes HTML-Dokument erstellst und dieses als Response schickst. Oder indem du das Formular nicht herkömmlich absendest, sondern Javascript im Browser verwendest, damit einen Ajax-Request machst, und die Response, die üblicherwiese dann nur aus (JSON-kodierten) Daten besteht, in das immer noch angezeigte Dokument einbaust.

    Ob man besser das eine oder das andere nimmt, kommt darauf an, was man insgesamt erreichen möchte.

    dedlfix.