Nodejs форма отправки с использованием express возвращает неопределенное значение - PullRequest
1 голос
/ 03 мая 2020

По сути, эта простая форма отправки ничего не возвращает. Используя почтальона, я могу получить только данные request.body или undefined (console.log) / {} для имени входа. При отправке формы ничего не происходит вообще. Я прочитал все решения для анализатора тела, но, насколько я понимаю, теперь об этом позаботятся express 4.

. Вот моя форма (home.e js):

<form action="/" method="POST">
<div class="form-group">
  <label for="name">Name:</label>
  <input type="text" name="name" class="form-control" id="name">
</div>
<button type="button" type="submit" class="btn btn-primary submit">Submit</button>
</form>

Вот мой код сервера:

//Load packages
const express = require('express');
const app = express();

app.use(express.urlencoded({ extended: true}));
app.use(express.json()); 
app.use(express.static('public'));
app.set("view engine", "ejs");

//SERVER
// Listen to the App Engine-specified port, or 8080 otherwise
const PORT = process.env.PORT || 8080;
app.listen(PORT, () => {
  console.log(`Server listening on port ${PORT}...`);
})

//render home page
app.get('/', function(req,res){
    res.render("home");
});


//post request
app.post('/', function(req, res)
{var body = res.json(req.body)
 var name = body.name; 
    console.log(name);
});

Ответы [ 2 ]

0 голосов
/ 03 мая 2020

Вы можете использовать express.urlencoded или bodyParser.urlencoded оба одинаковые ссылка Здесь вам нужно изменить один тип кнопки, поэтому добавьте только одну

<button type="submit" class="btn btn-primary submit">Submit</button>

и заменить на этот код

//post request
app.post('/', function(req, res){
  var name = req.body.name
    res.json(name);
    //res.send(name);
    console.log(name)
});
0 голосов
/ 03 мая 2020

запустите "npm i body-parser" в вашем CLI и импортируйте body-parser, например

const bodyParser = require('body-parser')

, а затем используйте промежуточное ПО

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

также необходимо обновить обработчик почтового запроса

//post request
app.post('/', function(req, res)
    {var name = req.body.name; 
    console.log(name);
    res.status(201).send();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...