Comment utiliser le corps-analyseur en express routeur?
J'ai un post de l'api qui a de l'objet, mais je ne suis pas capable d'imprimer en console sa throowing undefined j'ai pensé que je suis absent de corps-analyseur mais après l'ajout du corps analyseur je vois l'erreur body-parser deprecated bodyParser: use individual json/urlencoded middlewares
Toute aide sera appréciée.
routes.js
var express = require('express');
var bodyParser = require('body-parser');
var Diagram = require('./api/diagram/diagram.controller');
var router = express.Router();
router.post('/saveUpdateDiagram',bodyParser,function(req,res){
console.log(req.body);
});
app.js
var express = require('express');
var path = require('path');
var app = express();
var bodyParser = require('body-parser');
var router = express.Router();
var route = require('./server/routes').router;
var mongoose = require('mongoose');
mongoose.connection.on('connected', function() {
console.log('MongoDB connected ');
});
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', route);
app.use(bodyParser.urlencoded({
extended: false
}))
app.use(bodyParser.json())
app.listen(8760, function() {
console.log('I am listening 8760...');
});
- Essayez de prendre le
bodyParser
vous êtes de passage dans la voie de sortie. Puisque vous utilisez la bodyParser au niveau du serveur (viaapp.use(...)
) vous avez déjà le middleware chargé.
Vous devez vous connecter pour publier un commentaire.
Votre utilisation de corps-analyseur en app.js est fine. Il est middleware, et il est chargé avec app.l'utilisation de sorte qu'il sera appliqué à chaque demande entrante.
Vous pouvez le supprimer en routes.js, de sorte qu'il ressemble à ceci:`
JS:
`
Aussi, essayez de la remplacer:
JS:
avec:
JS:
Cela signifie que l'utilisation de la
bodyParser()
constructeur a été abandonné, comme de 2014-06-19.Si vous êtes toujours d'obtenir un message d'avertissement avec urlencoded vous devez utiliser
L'étendue objet de configuration de la clé doit maintenant être explicitement passé, puisqu'il a maintenant pas de valeur par défaut, comme l'a dit de plus ici.
Votre utilisation de corps-analyseur en app.js est fine. Il est middleware, et il est chargé avec app.l'utilisation, mais la problème, c'est la position où vous avez utilisé l'application.utilisation('/', route); il doit être placé en dessous de l'application.utilisation(bodyParser.urlencoded({
étendue: vrai
}));