J'apprends nœud.js avec express. Je suis jolie nouvelle, et c'est mon premier projet avec absolument aucun tutoriel.
L'application utilisera EJS pour les modèles et j'utilise Express.json () pour analyser les données du formulaire. N'utilisez pas d'analysserie car Express le fait-il hors de la boîte maintenant. p>
Chaque fois que je console.log (req.body) il est entré en tant que chaîne vide. Quand j'essaie de consoler.log (req.body.name), ou tout autre des champs de formulaire, il revient comme non défini. P>
aide s'il vous plaît, je n'ai aucune idée de ce que le problème est, et cela n'a jamais été un problème avec aucune de mes applications de pratique précédentes. p>
Voici mon code relavant: p>
in app.js p> dans mon formulaire (register.ejs): p> dans mon fichier de route (utilisateurs.js) p> merci pour toute réponse! p> p >
3 Réponses :
Vous avez besoin d'un middleware pour analyser le corps de la demande. Je pense que le plus courant est Body-Parser . Il est assez facile à utiliser: p>
NPM Installez Body-Parser Code> Li>
- Importez-le:
var bodyparser = nécessite ('Body-Parser') Code> Li>
- et inscrivez-vous en tant que middleware express:
app.use (bodyparser.json ({Type: 'Application / * + JSON'})) CODE> LI>
ul>
Merci pour votre réponse! Cependant, autant que je sache, la dernière version de Express n'exige plus d'un analysserie. Il peut le faire hors de la boîte avec Express.json (). Je l'ai fait avec deux autres applications et cela a fonctionné bien.
Eh bien! C'est embarrassant. Je viens de redémarrer mon serveur et cela fonctionnait. Je ne sais pas pourquoi cela ne fonctionnait pas auparavant. Je pense que c'est peut-être parce que je pensais que j'utilisais Nodemon quand je n'étais pas. Bonne chose que j'ai montré à quel point je suis noob avec mon premier poste haha. p>
Bienvenue sur le devant, J'ai vu votre code et il pourrait y avoir des erreurs que vous deviez faire attention.
Vous devez installer Bodyparser NPM Installer Body-Parser --Save Code> P>
`// Require routes
const indexRouter = require('./routes/index');
const usersRouter = require('./routes/users');
//
app.use(logger('dev'));
app.use(express.json());
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
//
app.use('/', indexRouter);
app.use('/users', usersRouter);`