У меня много трудностей при выполнении чего-то, что в видеоуроках кажется довольно простым. Я создал приложение узла, используя экспресс с фиктивным HTML (через ejs). Я пытаюсь захватить данные, которые пользователь вводит через поле ввода (например, панель поиска), и пытаюсь убедиться, что узел собирает эти данные.
У меня есть файл ejs с этой формой.
<form action = "/input" method = "POST" enctype = "multipart/form-data">
<div class = "input-group">
<input type = "text" class = "form-control" name = "id" placeholder = "Enter the id of the product you would like to buy">
<div class = "input-group-append">
<button class = "btn btn-outline-secondary" name = "submit" type = "submit"><i class = "fas fa-cart-plus mr-2"></i>Add to Cart</button>
</div>
</div>
</form>
В моем файле app.js в следующем порядке я:
var express = require('express');
var bodyParser = require('body-parser');
// setting up views
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.use(express.static(path.join(__dirname, 'public')));
// middleware for bodyParser
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
// render page
app.get('/input', function(req, res){
res.render('input');
});
// get input from text input
app.post('/input', function(req, res) {
console.info(req.body.id);
})
Выполнение этого возвращает "undefined". Я пробовал заменить req.body.id на req.body, который возвращает пустой объект {} в консоли. Любая помощь будет оценена по достоинству. Я не уверен, что мне не хватает.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Гордитесь собой, покорив мир экземпляров серверов Node! В основном проблема, с которой вы столкнулись, связана с Express. Порядок, в котором вы что-либо объявляете при первоначальной настройке Express, очень жесткий. Попробуйте переместить конфигурацию представлений под настройку промежуточного программного обеспечения для парсера тела. Я установил сотни приложений Express, и мои общие конфигурации goto first всегда:
app.disable('x-powered-by')
app.disable('etag')
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: true }))
app.use(cookieParser())
app.use(compress())
app.use(methodOverride())
app.use(helmet())
app.use(cors())
Прежде чем я сделаю регистрацию для шаблонных фреймворков.
спасибо, но теперь консоль больше ничего не регистрирует.
Измените тип кодировки, чтобы отображать JSON при отправке данных, которые должны быть доступны для чтения клиенту.
Как мне это сделать?
Ваш код ожидает json,
bodyParser.json(), но форма не отправляет JSON по умолчанию.