当前位置: 首页 > 知识库问答 >
问题:

请求。正文未填充表单数据

杨轶
2023-03-14

以下文件是我试图向nodejs(Express)服务器提交POST请求的过程。req.body不会从我的表单中填充任何类型的数据。我已经做了很多搜索,发现许多解决这个特殊问题的方法包括在我的路线之前移动身体解析器,并确保在表单字段中包含名称。

应用程序。js

[variables]
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(validator({errorFormatter: -----}));
[other middleware]
require('./passport')(app, passport);
require('./routes')(app, passport);
[start server]

指数玉

block content
h1= title
p Please register below
.error-messages
    ul.errors
        if errors
            each error, i in errors
                li.alert.alert-danger #{error.msg}
form(method='post', action='/signup', enctype='multipart/form-data')
    .form-group
        label Name
        input.form-control(type='text', name='name', placeholder='Enter name')
    .form-group
        label Email
        input.form-control(type='email', name='email', placeholder='Enter email')
    .form-group
        label Username
        input.form-control(type='text', name='username', placeholder='Enter a username')
    .form-group
        label Password
        input.form-control(type='password', name='password')
    .form-group
        label Confirm Password
        input.form-control(type='password', name='passwordConfirm')
    input.btn.btn-primary.pull-right(type='submit', name='submit', value='Sign Up')

指数js(从app.post('/signup',…)调用)

var name = req.body.name,
    email = req.body.email,
    username = req.body.username,
    password = req.body.password,
    passwordConfirm = req.body.passwordConfirm;

name = 'meg';

console.log('name: ' + req.body.name);
console.log('email: ' + req.body.email);
console.log('name2: ' + name);
console.log(req.body);
console.log(req.headers);
console.log(req.is('json'));

安慰日志

name: undefined
email: undefined
name2: meg
{}
 { host: 'xx.xx.xx.xxx:xx',
 connection: 'keep-alive',
  'content-length': '623',
  'cache-control': 'max-age=0',
   accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
  origin: 'http://xx.xx.xx.xxx:xxxx',
  'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36      (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36 OPR/29.0.1795.60',
   'content-type': 'multipart/form-data; boundary=----     WebKitFormBoundaryYJyUQjMbfAn9Cr64',
  dnt: '1',
  referer: 'http://xx.xx.xx.xxx:xxxx/signup',
  'accept-encoding': 'gzip, deflate, lzma',
  'accept-language': 'en-US,en;q=0.8',
  cookie: 'connect.sid=s%3Au9o1F_i22gHj0ZCqpHQiKWDLBGOVU1MJ.6DdtQAqbR6sriI8zF3AjQy6y1TDMD93TMGI7fRIJ5mM' }
 false

共有2个答案

杨昊
2023-03-14

您正在发送一个多部分/表单数据请求,但未使用与多部分/表单数据兼容的正文解析中间件。一些处理这种格式的中间件模块示例有multermultiparty/强大的

柯子琪
2023-03-14

您对表单使用了错误的enctype,Express默认不支持多部分(用于文件上传),您需要使用x-wow-form-urlencoded。

form(method='post', action='/signup', enctype='application/x-www-form-urlencoded')
 类似资料:
  • 我正在使用PHP和SQL生成一个数组,该数组计算具有相同值的数据,以及这些值中有多少输出json_encode到: <代码>{“05”:4,“09”:4,“19”:4} Chart.js文件:(向下修剪) console.log输出 但是,如果我将罪行放入数据部分,它就不起作用了?

  • 当我在symfony4中提交json http post请求时,requesthandling不会提交我的表单。 我尝试将“方法”选项设置为要发布的表单,但似乎没有帮助。我将application/json头用于Content-type和Accept。 表格: 控制器: 还有我的http帖子: 标头:内容类型:应用程序/json接受:应用程序/json 正文:{“用户名”:“dunglas”} 我

  • 我一直在看教程,我似乎无法得到一个表来填充。我也在使用net beans和scenebuilder。如有任何帮助,我们将不胜感激!挣扎了5个小时。 下面是的代码 以下是我的主要内容:

  • 客户(ReactJS/Axios): Multer中间件: 下一个(): 异步(req,res)= 此处req.file未定义! } 当我尝试使用Axios传递图像时,req.file在控制器中显示为未定义。 我认为错误是在传递多部分/表单数据时,因为当我通过Insonmia Rest执行此操作时,它会工作!

  • 问题内容: 我有一个datalist标记,该标记允许我的用户使用建议框。但是,我注意到野生动物园不支持此功能。有没有解决此问题的方法? 这是我的代码-我实际上是用ajax方法填充值,但这是填充后的样子: 问题答案: Safari不支持数据列表元素。

  • 我有3个动态选择,状态- 如果我在stateCountryCityAction(ex$idState=1;)内手动设置$idState,该函数可以正常工作,但dinamally不工作!为什么????:( 这是我的应用程序\控制器: 这是应该填充第二个select的函数。它位于我的应用程序\控制器中,位于其他功能的下方: 这是我的jquery函数。我试图在select更改时提醒var状态,并且输出是