Вы говорите bodyParser для анализа тела, как будто это JSON.Однако стандартный <form>
будет отправлять данные не в формате JSON, а в виде application/x-www-form-urlencoded
.
. Чтобы прочитать это в своем экспресс-приложении, вам потребуется что-то вроде этого:
app.use(bodyParser.urlencoded({extended: false}));
Разрешение как JSON, так и данных формы
Если вы хотите разрешить как URL-кодирование, так и данные JSON, вы можете комбинировать оба метода:
app.use(bodyParser.urlencoded({extended: false}))
app.use(bodyParser.json())
Полный пример может быть найдено здесь .
Встроенная альтернатива
Полезно отметить: если вы используете последнюю версию Express, вы можететакже замените модуль body-parser
на встроенную альтернативу:
app.use(express.urlencoded({extended: false}))
app.use(express.json())
Это все еще использует body-parser
снизу (и, следовательно, имеет тот же самый synax), но может выглядеть немного аккуратнее в вашем приложении.