表单提交到达了我的路由器,但没有数据。
已解决:将express.json()
中间件替换为express.urlencoded()
。请参阅我对“为什么”的回答。
(隐喻:该表格是一辆公共汽车,然后按下“提交”按钮正在一个公共汽车站收集乘客,然后下车到服务器。这辆公共汽车将门关在那个可能是乘客的脸上,乘客在后面奔跑,乞求总线停止,但总线继续并到达服务器为空的服务器,我需要帮助来替换此功能不佳的总线驱动程序。 )
我正在使用Express v4.17.00和body-parser v1.19.00(我知道它是可选的)。
HTML修复尝试:
快速修复尝试:
使用上述修复程序,console.log(req.body)
始终显示{}
。我在MRE中使用MDN的示例,因此我认为Express缺少一些功能。
我希望数据进入我的/ store-schedule发布路线,并将数据作为req对象的一部分,并且我应该能够使用它。
无论使用哪种形式的输入,console.log(req.body)
都会给我{}。没有错误消息。
答案 0 :(得分:0)
我猜想表单是通过将数据编码到随邮寄请求发送的数据包主体中而起作用的。我猜这就是URL encoded
所指的。这与JSON请求不同。我在传输和请求JSON方面经验很少。我只知道它与JSON请求/响应不同。
因此,将express.json()
切换为express.urlencoded()
可以通过服务器的/store-schedule
路由获得我的数据。
// app.use(express.json()); Doesn't work.
app.use(express.urlencoded()); // Works