невозможно получить request.body в экспрессе

node.js express

628 просмотра

2 ответа

1982 Репутация автора

Я играю с экспрессом и пытаюсь понять основную работу по отправке формы, и я не могу получить данные о req.body (дает пустой объект). Вот файл html и js, который я использую.

HTML-файл

         <form class="form-horizontal" id="form" action="/action" method="post" role="form">
            <h2>Registration Form</h2>
            <div class="form-group">
                <label for="firstName" class="col-sm-3 control-label">Full Name</label>
                <div class="col-sm-9">
                    <input type="text" id="firstName" placeholder="Full Name" class="form-control" autofocus="">
                    <span class="help-block">Last Name, First Name, eg.: Smith, Harry</span>
                </div>
            </div>
            <div class="form-group">
                <label for="email" class="col-sm-3 control-label">Email</label>
                <div class="col-sm-9">
                    <input type="email" id="email" placeholder="Email" class="form-control">
                </div>
            </div>
        </form>

а также

Файл Javascript

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


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


var MongoClient = require('mongodb').MongoClient; 
var myCollection;

app.post('/action', function (req, res) {
    console.log("----------------------",req.body);
    res.send("done");
});

app.get('/', function (req, res) {
  res.sendFile(__dirname+"/signup.html");
});

 app.listen(3000, function () {
 console.log('Example app listening on port 3000!');
 var db = MongoClient.connect('mongodb://127.0.0.1:27017/test',         
   function(err, db) {
       if(err)
        throw err;
      else{
        console.log("connected to the mongoDB !");
        myCollection = db.collection('test_collection');
      }
  });
});
Автор: Sai Ram Источник Размещён: 19.07.2016 03:27

Ответы (2)


1 плюс

3182 Репутация автора

Решение

nameВходные данные формы должны иметь для bodyparser для построенияreq.body

Добавьте nameк полям ввода имени и адреса электронной почты.

<input type="email" id="email" placeholder="Email" class="form-control" name="email">
<input type="text" id="firstName" placeholder="Full Name" class="form-control" autofocus="" name="firstName">
Автор: Swaraj Giri Размещён: 19.07.2016 03:35

0 плюса

8035 Репутация автора

У меня была похожая проблема, но нет ключа (не json), это был текст xml
. Решение здесь: https://stackoverflow.com/a/45709414/984471

Автор: Manohar Reddy Poreddy Размещён: 16.08.2017 09:09
Вопросы из категории :
32x32