#javascript #html #node.js #express #post
#javascript #HTML #node.js #экспресс #Публикация
Вопрос:
Я пытаюсь прочитать тело POST-запроса, используя Express в узле.JS framework. Я отправляю HTTP-POST-запрос с использованием HTML-формы. Я обнаружил POST-запрос на WireShark со следующими данными:
Это показывает, что запрос отправлен успешно. Я ожидал формат JSON, который является тем, который Express успешно проанализировал для меня, но этот формат, похоже, просто не работает, что бы я ни пробовал. Моя текущая реализация выглядит следующим образом:
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
var jsonParser = bodyParser.json()
//Import static files
app.use(express.static('../public'))
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.post('/', jsonParser, (req, res) => {
console.log(req.body);
res.send(200);
});
app.listen(port, () => console.log("Server started"));
Независимо от того, что я пробую из других сообщений, он по-прежнему, похоже, не возвращает мне никаких данных.
У кого-нибудь есть идея, как решить эту проблему?
Комментарии:
1. Тело вашего запроса закодировано в форме url, а не в формате JSON, чего бы это ни стоило.
Ответ №1:
Почему вы используете ‘JsonParser’ в маршруте приложения? Попробуйте что-то вроде:
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.urlencoded({ extended: true }));
app.post('/post-test', (req, res) => {
console.log('Got body:', req.body);
res.sendStatus(200);
});