web-dev-qa-db-fra.com

comment imprimer les données de post-demande sur la console

J'essaie d'imprimer les données de publication sur ma console


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'));
});

Instantané initial ::

enter image description here


Je teste avec POST-MAN avec les données ci-dessous ::

enter image description here


Maintenant, j'obtiens une erreur en tant que ::

enter image description here


  • Je veux juste imprimer les données que j'ai reçues de postier et qui sont dev..... qui est affiché comme undefined?
  • Comment résoudre ce problème!

[Modifier] ---- Ajout d'un analyseur de corps en dehors de l'itinéraire

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'));
});

J'ai toujours la même erreur

19
Devrath

Utilisez request.query lorsque vous avez des paramètres de chaîne de requête.

Pour les données de formulaire/post, utilisez req.body .

Dans votre cas, utilisez request.body.key.

7
Shrey

Au lieu de query:

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

utiliser 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

Une mise à jour sur l'utilisation du middleware, body-parser, pour les versions ultérieures d'Express: Utiliser app.use(express.bodyParser()) signalera une erreur telle que: Erreur: La plupart des middleware (comme bodyParser) ne sont plus fournis avec Express et doivent être installés séparément. Veuillez consulter https://github.com/senchalabs/connect#middleware .

Vous pouvez résoudre ce problème en installant d’abord le body-parser middleware:

npm install body-parser

puis écrivez un code tel que:

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

et ensuite accéder à la body de l'objet request, par exemple, console.log(req.body)

2
sumanth

Vous ne pouvez pas appeler app.use(express.bodyParser()); dans le gestionnaire de middleware/route:

  • la requête doit passer par bodyParser() avant d'atteindre le gestionnaire d'itinéraire
  • vous ajouterez de nouvelles bodyParser()s dans chaque demande, mais elles seront postérieures à app.router et ne fonctionneront jamais
1
vkurchatkin

Utilisez la fonction intégrée "util" pour imprimer tout type de données json dans Express js

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