HTML-форма отправляет пустой контент на сервер - PullRequest
0 голосов
/ 23 мая 2018

Я пишу проект Node, который имеет одну страницу просмотра для пользователя, чтобы получить информацию, но HTML-форма отправляет пустое содержимое, я несколько раз проверял почтальон и информация успешно сохранена, я отправляю его методом post:

{
"name" : "john" , 
"family" : "swift",
"meliCode" : "12345" }

и вернуть его (среднее значение в дБ):

{
"_id": "5b05bd2309d3c30404ec5b03",
"name": "john",
"meliCode": "12345",
"family": "swift",
"__v": 0

}

но когда я отправляю информацию с помощью форм HTML, поля в таблице (коллекции) становятся пустыми, простовозврат:

{
"_id": "5b05bd2309d3c30404ec5b03",
"__v": 0  }

<form action="/api" method="post">
  <div class="container">
    <h1>Register</h1>
    <p>Please fill in this form to create an account.</p>
    <hr>

    <label for="name"><b>Name</b></label>
    <input id="name" type="text" placeholder="Enter Name" name="name" required>

    <label for="family"><b>Family</b></label>
    <input id="family" type="text" placeholder="Enter Family" name="family" required>

    <label for="meliCode"><b>MeliCode</b></label>
    <input id="meliCode" type="text" placeholder="Enter Melicode" name="meliCode" required>
    <hr>
    <p>By creating an account you agree to our <a href="#">Terms & Privacy</a>.</p>

    <button type="submit" class="registerbtn">Register</button>
  </div>
</form>

и на стороне сервера с маршрутизацией '/ api' (console.log return '{}'):

const express = require('express');
const router = express.Router();
const user = require('../models/Users');

router.get('/' , function (req , res , next) {
  res.send('get')
});
router.post('/' , function (req , res , next) {
  user.create(req.body).then(function (user) {
    res.send(user);
  }).catch(next);
});

module.exports = router;

1 Ответ

0 голосов
/ 23 мая 2018

Похоже, у вас не настроен анализатор тела.Вам нужно будет использовать промежуточное ПО body-parser для доступа к данным в теле почтового запроса.Более подробная информация о промежуточном программном обеспечении доступна здесь .

Вот пример, предоставленный документацией body-parser

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

var app = express()

// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))

// parse application/json
app.use(bodyParser.json())

app.use(function (req, res) {
  res.setHeader('Content-Type', 'text/plain')
  res.write('you posted:\n')
  res.end(JSON.stringify(req.body, null, 2))
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...