POST zu PHP von Node.js

Ich versuche, einige Daten aus einer Node.js-Anwendung in ein PHP-Skript zu POSTEN. Momentan erstelle ich nur einen Proof of Concept, kann aber die eigentlichen Daten nicht auf die PHP-Seite übertragen. Die Anfrage geht durch und ich bekomme 200 zurück, aber PHP denkt, dass das Array $ _POST leer ist.

Hier ist mein Knotencode:

// simple end point just for testing

exports.testPost = function(request, response) {
    data = request.body.data;

    postToPHP(data);

    response.end(data);
}

function postToPHP (data) {
    var http = require('http');

    var options = {
        host : 'localhost',
        port : 8050,
        path : '/machines/test/index.php',
        method : 'POST',
        headers : {
            'Content-Type' : 'application/json',
            'Content-Length' : Buffer.byteLength(data)
        }
    };

    var buffer = "";

    var reqPost = http.request(options, function(res) {
        console.log("statusCode: ", res.statusCode);

        res.on('data', function(d) {
            console.info('POST Result:\n');
            //process.stdout.write(d);
            buffer = buffer+data;
            console.info('\n\nPOST completed');

        });

        res.on('end', function() {
            console.log(buffer);
        });
    });

    console.log("before write: "+data);

    reqPost.write(data);
    reqPost.end();

}

Wieder schafft es die Anfrage zu localhost: 8050 / machines / test / index.php, aber wenn ich einen var_dump von $ _POST mache, ist es ein leeres Array.

[29-Jan-2014 21:12:44] array(0) {

}

Ich vermute, ich mache etwas falsch mit der .write () -Methode, aber ich kann nicht genau herausfinden, was. Jede Eingabe zu dem, was mir fehlt oder was ich falsch mache, wäre sehr dankbar.

* Aktualisieren:

Wie in einigen Kommentaren angegeben, wird file_get_contents ('php: // input') verwendet. funktioniert, um die Daten auf der PHP-Seite abzurufen, aber ich würde es immer noch vorziehen, direkt auf das Array $ _POST zugreifen zu können.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage