HTML Formular Input in SQLite Datenbank speichern, (mit NodeJS) wie?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Node.JS läuft auf Serverseite. Du bindest da gerade das Skript, welches mit der Datenbank kommunizieren soll, in ein HTML-Dokument ein, welches clientseitig interpretiert wird.

Suche dir besser ein Tutorial heraus, mit dem du in das Thema einsteigen kannst. So wie dieses: https://www.sqlitetutorial.net/sqlite-nodejs/.

Vielleicht wäre auch nochmal ein Node.JS-Tutorial im Vorfeld gar nicht schlecht. Schau bspw. hier: https://nodejs.dev/learn. Bezüglich Formularverarbeitung (mit Express.js) kannst du diese Seite (https://developer.mozilla.org/en-US/docs/Learn/Server-side/Express_Nodejs/forms) nutzen.


Fxbyy420 
Fragesteller
 07.02.2021, 19:24

SQLite & Node Tutorial habe ich schon gemacht. Ich habe jetzt auch das Express Formularverarbeitungs-Tutorial angeguckt, checke aber immer noch nicht, wie ich das genau anstellen sollte.

0
regex9  08.02.2021, 01:24
@Fxbyy420

Gehe schrittweise vor:

Schau erst einmal, dass du eine simple Node.js-Anwendung zum Laufen bekommst (die vielleicht nur Hello zurückgibt o.ä.).

Der Folgeschritt wäre es, die Formulardaten verarbeiten zu können. Hierfür braucht der Code aus deiner sqlite.js ja nur noch etwas angepasst werden. Statt PlaceName müsstest du name_field aus dem Request Body auslesen.

Auch die Route ist noch falsch. Wenn dein Formular Daten gegen /team_name_url sendet, muss auch diese POST-Route abgefangen werden.

Die beiden Zeilen:

const bodyParser= require('body-parser');
app.use(bodyParser.urlencoded({extended:true}));

können übrigens raus und gegen

app.use(express.urlencoded());

ersetzt werden. Express hat bereits einen eigenen Parser integriert.

Für Express gibt es übrigenes auch Validator-Hilfe, lies dazu hier (nur gib dein HTML-Formular nicht über res.send aus, so wie dort gezeigt, sondern verwende stattdessen express.static oder zumindest sendFile).

Zum dritten Schritt (SQLite-Kommunikation) wiederum steht genügend auf der oben verlinkten Seite.

1
regex9  08.02.2021, 01:30
@Fxbyy420

Da mir das gerade noch auffällt: Es wäre besser, wenn du deine Koordinaten in einzelne Tabellenspalten mit dem richtigen Typ (INTEGER) speichern würdest, statt als kompletten String. Dies verschafft dir mehr Flexibilität (in späterer Formatierung oder bei Aktionen zur Filterung oder Bearbeitung der Koordinaten).

0
Fxbyy420 
Fragesteller
 08.02.2021, 18:31
@regex9

Ja, das mit den Koordinaten habe ich eh einfach mal so gemacht zum ausprobieren. Trotzdem Danke.

0
Fxbyy420 
Fragesteller
 08.02.2021, 19:25
@regex9

Besten Dank. Ich weiss jetzt ein bisschen mehr von dem Ganzen und habe schon eine Ahnung, wie es in Etwa funktionieren könnte.

0
Fxbyy420 
Fragesteller
 09.02.2021, 18:22
@regex9

Ich habe es jetzt geschafft. Vielen Dank!

1

Du willst also für jeden sichtbar den Zugriff auf deine Datenbank zeigen ?

Keine gute Idee.

Damit ist ja Tür und Tor geöffnet.

Besser du benutzt PHP das unsichtbar auf dem Server läuft.

Vielleicht wäre es sinnvoll du schaust dir mal eine Seite an wie

https://www.w3schools.com/sql/default.asp

Lerst dort erst den Umgang mit SQL und z.b. Serverseeitiger Programmierung z.b. PHP

Und auch mal ein Tutorial über HTML

Wenn du dann verstanden hast was der Unterschied von Client und Server und Datensicherheit dann schau dir nochmal an was du da gerade versuchst.