JavaScript Daten an Server schicken (nodejs)?

...komplette Frage anzeigen

3 Antworten

benutzt du das express modul ?

dann brauchst du das nur an die route senden und da verarbeiten .

abbrechen 16.11.2016, 14:37

Installiert ist es, benutzt habe ich es noch nicht. Wie genau sende ich die Daten dann an die route? Oder kannst du mir da eine bestimmte Quelle empfehlen? Ansonsten muss ich mich mal gleich durch Google wühlen.

0
RakonDark 16.11.2016, 14:59
@abbrechen

praktisch müsstest du die daten ja serialisieren über einen request senden und den request dann in der server.js abfangen und verarbeiten , anschliessend ein response .

http://expressjs.com/en/guide/routing.html

das wäre z.b. eine antwort auf die anfrage mit /mydata

app.get('/mydata', function (req, res) {
res.send('daten erhalten')
})

in req stehen die daten die ankommen in res was zur seite zurück geschickt wird .

was ich auf die schnelle gefunden habe ist

https://codeforgeek.com/2014/09/handle-get-post-request-express-4/

das zeigt dir wie der javascript im html aufgebaut wird um es zu senden . mit express kann man dann schön die route festlegen die es verarbeiten soll .

bin leider auch schon etwas lange raus aus node.js .  und hab auch gerade nicht gefunden wie man nun die variable in sendefähiges material übersetzt .

1
RakonDark 16.11.2016, 15:02
@RakonDark

aber so wie es da aussieht, muss es halt ein JSON objekt werden .

1
abbrechen 16.11.2016, 15:08
@RakonDark

Vielen Dank. =)

Ich werde den Ansatz auf jeden Fall weiter verfolgen.

0

Du brauchst kein Express dafür. Einfach den XHR POST Request serverseitig annehmen, die empfangenen binary chunks in string wandeln, zwischenspeichern und am Ende daraus eine JSON kodieren:

/**
* POST /to-some-path
*/

var http = require('http');
var url = require( "url" );

http.createServer(
function (req, res) {

var path = url.parse(req.url).pathname;

var body = "";

if(path == "/to-some-path") {

req.on('data', function(data) {
body += data.toString(); //convert every reveived chunk to string and append to body var
});

req.on('end', function() {
var json_data = JSON.parse(body); // request stream finished, parse body to json
console.log(json_data)
});

}

}
).listen(80);




Also sinnvoller währe es mit PHP aber wenn du dieses nicht benutzt kann ich dich nur fragen hast du die datei in eine "deinname.html" datei eingebunden ?

abbrechen 16.11.2016, 14:16

Ja, die Datei ist eingebunden.

0
AppCreater 16.11.2016, 14:21
@abbrechen

ok wenn du dann variablen definiert hast binde nach der datei einfach deine server.js - Datei ein und schaue welche variable deine server.js speichert (z.B save) und definiere dies variabel in deiner anderen .js - Datei auch . Also in etwa so:

//Benutzer . js
Bla bla bla
var save = deine Daten;

//Server .js
bla bla
//abschnitt wo die variable gebraucht wird
data_to_save = save;(variable wurde übergeben)
bla bla

Pass aber auf das deine Benutzer.js datei vor deiner
Server.js in deine Html eingebunden wird. Sollte dies
nicht funktionieren schreibe mir Privat ich helfe dir
dann.
0
RakonDark 16.11.2016, 14:33
@AppCreater

sorry aber hast du von node.js überhaupt eine ahnung ? das ist kein apache server und verhält sich auch total anders .

1
abbrechen 16.11.2016, 14:35
@AppCreater

Die Idee ist klever, allerdings wird das so nicht gehen können. Serverdateien sind nicht direkt gekoppelt, wäre auch sehr unsicher. In diesem Fall z.B. benutze ich via Braintree (https://developers.braintreepayments.com/) eine PayPal-Implementierung. Da gibt es auf der Clientseite eine paypal.js, die, um das auf mein Problem zu reduzieren, Daten sammelt und eine paypal.js auf der Serverseite, in der auch Accountinformationen für den Geldtransfer enthalten sind. Wenn die serverseitige paypal.js einsehbar wäre, bringe das mehr Nachteile als Vorteile.

0
RakonDark 16.11.2016, 14:38
@RakonDark

unter anderem gibt es da quasi keine html dateien sondern mann kann die html dateien quasi einlesen und dann als content text/html senden . node.js ist ein JavaScript Framework .

1

Was möchtest Du wissen?