webentwicklung-frage-antwort-db.com.de

so drucken Sie die Daten aus der Post-Anfrage auf der Konsole

Ich versuche, die Postdaten auf meiner Konsole auszudrucken


app.js

var express = require('express')
 , http = require('http');

var app = express();

app.set('port', process.env.PORT || 7002);

app.use(express.static(__dirname + '/public/images'));


app.post('/Details/',function(request,response,next){


app.use(express.bodyParser());

   var keyName=request.query.Key;
   console.log(keyName);

} );


http.createServer(app).listen(app.get('port'), function(){
 console.log('Express server listening on port ' + app.get('port'));
});

Erster Schnappschuss ::

enter image description here


Ich teste mit POST-MAN mit untenstehenden Daten ::

enter image description here


Jetzt bekomme ich Fehler als ::

enter image description here


  • Ich möchte nur die Daten ausdrucken, die ich vom Postboten erhalten habe, nämlich dev..... welche als undefined angezeigt wird.
  • Wie kann ich das lösen?

[Bearbeiten] ---- Body Parser außerhalb der Route hinzufügen

var express = require('express')
 , http = require('http');

var app = express();

app.set('port', process.env.PORT || 7002);

app.use(express.static(__dirname + '/public/images'));

app.use(express.bodyParser());

app.post('/Details/',function(request,response,next){

   var keyName=request.query.Key;
   console.log(keyName);

} );


http.createServer(app).listen(app.get('port'), function(){
 console.log('Express server listening on port ' + app.get('port'));
});

Habe immer noch den gleichen fehler

19
Devrath

Verwenden Sie request.query , wenn Sie Paras überstringen möchten.

Für Form/Postdaten verwenden Sie req.body .

Verwenden Sie in Ihrem Fall request.body.key.

7
Shrey

Anstelle von query:

var keyName=request.query.Key;
   console.log(keyName);

verwenden Sie body:

var keyName1=request.body.key;
console.log(keyName1);

Code:

var express = require('express')
 , async = require('async')
 , http = require('http');

var app = express();

app.set('port', process.env.PORT || 7002);

app.use(express.static(__dirname + '/public/images'));

app.use(express.bodyParser());

app.post('/Details/',function(request,response,next){

   var keyName1=request.body.key;
   console.log(keyName1);
} );


http.createServer(app).listen(app.get('port'), function(){
 console.log('Express server listening on port ' + app.get('port'));
});
13
Devrath
var express = require('express');
var app = express();

app.use(express.bodyParser());

app.post('/post/', function(req, res) {
   // print to console
   console.log(req.body);

   // just call res.end(), or show as string on web
   res.send(JSON.stringify(req.body, null, 4));
});

app.listen(7002);
9
damphat

Ein Update zur Verwendung der Middleware body-parser für spätere Versionen von Express: Die Verwendung von app.use(express.bodyParser()) meldet einen Fehler wie: Fehler: Die meisten Middleware (wie bodyParser) werden nicht mehr mit Express ausgeliefert und müssen separat installiert werden. Siehe https://github.com/senchalabs/connect#middleware .

Dies kann durch die Installation der body-parser middleware behoben werden:

npm install body-parser

dann schreibe Code wie:

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

und dann auf die body des request-Objekts zugreifen, z. B. console.log(req.body)

2
sumanth

Sie können app.use(express.bodyParser()); nicht im Middleware-/Routen-Handler aufrufen:

  • die Anforderung sollte bodyParser() durchlaufen, bevor sie den Routen-Handler erreicht
  • sie werden in jeder Anforderung neue bodyParser()s hinzufügen, die jedoch nach app.router stehen und nie funktionieren werden
1
vkurchatkin

Verwenden Sie die integrierte Funktion "util", um jede Art von Json-Daten in Express-Js zu drucken

var util = require("util");
console.log(util.inspect(myObject, {showHidden: false, depth: null}));
0
vinod