Ответ
В POST-запросе данные (тело запроса) передаются в теле (body), а не в URL. Конкретное место и формат определяются заголовком Content-Type.
Основные способы в Node.js/Express:
-
application/x-www-form-urlencoded(стандартная форма HTML):// Данные: name=John&age=30 app.use(express.urlencoded({ extended: true })); // Middleware для парсинга app.post('/submit', (req, res) => { console.log(req.body.name); // 'John' console.log(req.body.age); // '30' }); -
application/json(наиболее распространен для API):// Данные: {"name":"John","age":30} app.use(express.json()); // Middleware для парсинга JSON app.post('/api/users', (req, res) => { const userData = req.body; // ... обработка }); -
multipart/form-data(для загрузки файлов):const multer = require('multer'); const upload = multer(); // Для полей формы app.post('/upload', upload.none(), (req, res) => { console.log(req.body); // Текстовые поля формы }); // Для файлов app.post('/upload-file', upload.single('avatar'), (req, res) => { console.log(req.file); // Информация о загруженном файле });
Важно: Для доступа к req.body в Express обязательно нужно подключить соответствующий middleware парсер (express.json(), express.urlencoded()). Без него req.body будет undefined.