gpt4 book ai didi

node.js - Jade 表单返回空主体以表达 Node.js POST 请求

转载 作者:太空宇宙 更新时间:2023-11-03 22:00:14 25 4
gpt4 key购买 nike

作为训练的一部分,我使用 Jade 与express 和node.js 来创建飞行日志数据库的前端。我已确认我的inputs have names ,我的正文解析器是 set to application/json ,并且我的路线出现 after my middleware declarations ,但我的 req.body 对象仍未定义。我的问题是为什么。这是我的 Jade 形式中的一个字段:

.row.col-sm-16
div.input-group.form-control
form(action='',method='POST')

div(data-role='fieldcontain')
fieldset(data-role='controlgroup')
label(for='HobbsOut') HobbsOut &nbsp &nbsp &nbsp
input(id='HobbsOut',type='text',value='',placeholder='hobbs in generated',name='HobbsOut')

每个字段都会重复间隙下方的所有内容。提交按钮:

div.text-center
button.btn.btn-default.input-group-button Submit

按钮 div 与“数据角色”div 对齐。相关路线:

app.post('/logadd', ctrl.addFlight); 

以及相关 Controller :

module.exports.addFlight = function (req, res) {
console.log(req.body.HobbsOut);
res.redirect('/loglist');
};

目前我只是尝试打印第一个字段并将用户重定向到飞行日志。我在多个应用程序中遇到此问题。我必须知道如何将用户输入推送到数据库中。非常感谢任何和所有的帮助。

最佳答案

编辑 1:

您是否尝试过验证请求是否使用与 POST http 请求一起发送的 HobbsOut 值发送到正确的 URL(我们的 '/logadd')案例)使用Fiddler?

你能提供生成的表单html而不是jade模板吗?因为 Jade 模板引擎本身与您面临的问题无关。您的问题可能是以下三个问题之一:

  1. 生成的 html 不正确。
  2. 表单发布数据的网址不正确
  3. 服务器端无法解析 HTTP POST 请求中发送的数据。

旧帖子:

您需要使用 bodyParser.urlencoded 添加对解析表单内给定数据的支持。 :

var express = require('express')
var bodyParser = require('body-parser')
var app = express()

// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))

最后一行添加了表单正文解析,内容类型为 application/x-www-form-urlencoded。

body-parser中间件将表单主体解析为服务器端变量req.body

关于node.js - Jade 表单返回空主体以表达 Node.js POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28096758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com