node.js & express: req.body undefined

В настоящее время я разрабатываю простое приложение для браузера, использующее экспресс. Я пытаюсь извлечь значение, которое пользователь выбирает в раскрывающемся меню. Я также дал каждому варианту индивидуальное значение и объявил метод формы как / post. но когда я попробую, какое значение они выбрали, перейдя в значение req.body, значение не определено.

Я понимаю, что проблема может заключаться в анализе тела при просмотре похожих вопросов ( пример , пример1 ), но решения этих вопросов не исключаются req.bodyиз неопределенности.

Вот мой код для построения приложения

const app = express()
app.use(express.static(__dirname, ''));
app.engine('html', require('ejs').renderFile);
app.set('views', __dirname + '/public/views');
app.use(express.urlencoded());
app.set('view engine', 'html');
const server = http.createServer(app);

И вот код для обработки почты

app.get('/detailed', function(req,res){
    res.send(displayDetailed(results, req));
});
app.post('/detailed', function(req,res){
    res.send('Hello world');
    console.log(req.body);

});

Когда я отправляю кое - что в локальном хосте: 8080 / подробный, то привет мир возвращается только штраф, но сопзЬ bodyParser = требуется ( «тело-анализатор» ) приложение . use ( bodyParser . json ()) является пустым (возвращается как {}). Функция displayDetailed - это настраиваемая функция, которая возвращает строку html со значениями, извлеченными из запроса на получение из API-интерфейсов google. Так как я не работаю с сохраненным html-документом, это может повлиять на процесс?

javascript,node.js,express,

0

Ответов: 3


2

Вы настроили парсер для выражения для использования? вы можете просто установить npm body-parser, а затем поместить их в свой код.

req.body

Надеюсь, это поможет!


0

При вызове req.bodyвне функции async (где была вызвана функция, строящая html), req.bodyвозвращается совершенно нормально. Я буду модифицировать свой проект для учета этого. Я должен был поставить это в исходный вопрос, но это не показалось мне актуальным, когда я писал вопрос. Спасибо всем кто ответил


0

Это решит вашу проблему:

App.use(bodyParser.urlencoded({extended: true}));
JavaScript, Node.js, экспресс,
Похожие вопросы