2017-11-17 4 views
-1

Ich bin neu in NodeJS. Ich möchte eine Aufgabe auszuführen, wo HTML-Schaltfläche POST-Daten zu Server senden unten ist der HTML-Code,Daten vom Server zum Client in NodeJS Express

<form action="/Device_Data" method="post"> 
    <select name="deviceSelect" id="deviceSelect" class="selectdevice" type = "text" style="margin-top:1.5%"> 
    <option value="" selected="selected">Choose Device</option> 
    <option value="Device1">Device 1</option> 
    <option value="Device2">Device 2</option> 
    <option value="Device3">Device 3</option> 
    <option value="Device4">Device 4</option> 
    <option value="Device5">Device 5</option> 
    <option value="Device6">Device 6</option> 
    <option value="Device7">Device 7</option> 
    <option value="Device8">Device 8</option> 
    </select> 
    <button id="Import" value="Import" class="button1" type="submit" >Import</button> 
</form> 

Server die Daten in req.body empfangen.

app.post("/Device_Data", function (req, res) {  
    console.log("Got response: " + res.statusCode); 

    // result.entries contains entities matching the query 
    res.setHeader('Content-Type', 'application/json'); 
    //console.log(req.body.deviceSelect); 

    var deviceSelected = (req.body.deviceSelect); 
    console.log(deviceSelected); 

    var devData = ["deviceId","trainId", "messageId"]; 

    //var devData = []; 
    var text = JSON.stringify(response.body); 
    var obj = JSON.parse(text); 
    res.write("Hello"); 
}); 

nun der Teil I Frage ist, Wie ich devdata Array von String von Server zu meinem Klienten und was sollte das sein Code senden kann?

Vielen Dank im Voraus.

+0

Nicht mit Express für ein bisschen gearbeitet - aber ich denke, Sie tun könnten 'res.write (JSON.stringify (devdata));' -, dass würde Ihr devData-Array als JSON zurückgeben. Ist das etwas, was du tun willst? – doublesidedstickytape

+0

Ich möchte, dass diese Daten auf meiner Webseite angezeigt werden, die gleiche Webseite von i POST die Daten. i Ajax-Aufruf bin mit nach unten, $ Schnipsel ({ url: '/ Device_Data', Typ: 'POST', domänenübergreif: true, Daten: {}, Erfolg: Funktion (Daten) { alert ("Datenlänge" + data.length); }, Fehler: function() { alert ("error");} }); –

Antwort

1

Gemäß ausdrücklicher Dokumentation verwenden Sie res.json, um JSON-Daten als Antwortanforderung zu senden.

res.status(200).json(devData); 

Beispiel aus der Dokumentation:

res.json(null); 
res.json({ user: 'tobi' }); 
res.status(500).json({ error: 'message' }); 
+0

meine AJAX-Aufruf wie folgt aussehen, $ Schnipsel ({ url: '/ Device_Data', Typ: 'POST', domänenübergreif: true, Daten: {}, Erfolg: function (data) { alert ("Datenlänge ist" + data.length); }, Fehler: Funktion() { Alarm ("Fehler"); } }); –

+0

und? Es funktioniert nicht? –

+0

Funktioniert nicht, es wird immer eine Fehlermeldung angezeigt. –

Verwandte Themen