2017-03-09 2 views
-1

Ich erstelle node.js Server und Parsen jquery Anfrage.Node js Anfrage Parameter Wert nicht analysieren

jquery Anfrage:

$.post("http://localhost:3000/usertoken/", 
     { 
      "token": "1212555", 
     }, 
     function(data,status){ 


alert("Data: " + data + "\nStatus: " + status); 
     }); 

Node Server

var express = require('express'); 
var sub_server = require('./sub_server.js'); 
var bodyParser = require('body-parser') 

var app = express(); 
app.listen(3000); 
app.use(express.static('www')) 
// parse application/json 
app.use(bodyParser.json()) 


app.get('/:id', function(req, res){ 
    console.log("request:",req.params.id); 
    res.send('The id you specified is ' + req.params.id); 
}); 

var firebase_token; 
// Post method 
app.post('/usertoken', function(req, res){ 

    var token1 = req.body.token;; 
    console.log("req parameter:",token1); 

    res.end(JSON.stringify("hemant")); 

}); 

ich unten Nachricht bin immer. req Parameter: undefined

Helfen Sie mir Postwert zu erhalten.

Vielen Dank.

+0

Sie können einige gute Informationen von diesem erhalten. http://stackoverflow.com/questions/4295782/how-do-you-extract-post-data-in-node-js –

+0

Erhalten Sie irgendeinen Wert, wenn Sie "req.body" trösten? –

Antwort

0

Stellen Sie sicher, Körper-Parser verwenden:

var bodyParser = require('body-parser'); 

und Verwendung:

app.use(bodyParser.json()); 

, wenn Sie in Anfragen JSON Körper verwenden oder diese:

app.use(bodyParser.urlencoded({ extended: false })); 

, wenn Sie verwenden application/x-www-form-urlencoded - Stellen Sie in beiden Fällen sicher, dass Sie den richtigen MIME-Typ in der Anfrage senden.

Lesen Sie die Dokumentation: https://www.npmjs.com/package/body-parser

Für weitere Informationen siehe diese Antworten:

+0

Ich habe die Datei serve.js hinzugefügt. Überprüfen Sie bitte das. Den gleichen Fehler erhalten. –

0

Ihr Server sollte zwar ordnungsgemäß funktionieren, Ihr Client jedoch nicht.

Sie vermissen die contentType Option auf dem $.post Aufruf. Wie Sie diese Parameter nur angeben können, wenn Sie alles in einem Objekt übergeben, den Anruf an den folgenden Code ändern, um sicherzustellen, dass Sie nicht nur JSON-Daten senden, sondern dass Sie setzten auch die content-type Header entsprechend:

$.post({ 
    url: "http://localhost:3000/usertoken/", 
    data: { 
    "token": "1212555", 
    }, 
    contentType: "application/json", 
    success: function (data, status) { 
    // ... 
    } 
}); 

Die body-parser Middleware wird nur aktiv, wenn der Header content-type darauf hinweist, dass Sie JSON-Daten senden.