【问题标题】:Getting http post form data in Node.JS在 Node.JS 中获取 http post 表单数据
【发布时间】:2017-12-14 12:32:45
【问题描述】:

嘿,我正在尝试使用 express 和 node 发送发布请求,这是我的代码。

index.html

<html>

<head>
    <title>Test</title>
</head>

<body>
    <form action="/form" method="POST" enctype="multipart/form-data">
        <input type="text" name="imagename"></input>
        <input type="submit" name="submit" value="submit"></input>
    </form>
</body>

</html>

我的 app.js 文件如下:

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

app.use(bodyParser.urlencoded({
   extended: true
}));
app.use(bodyParser.json());

app.post('/form', function(req, res){
 res.setHeader('Content-Type', 'application/json');
 setTimeout(function(){
     res.send(JSON.stringify({
        imagename: req.body.imagename || null

    }));
  }, 1000);
});

现在我应该将输出作为 imagename: //value 添加到表单中,如果为真,否则为空。而且我总是得到一个空值。我试图记录 req.body.imagename 的值,但我得到的是未定义的,而不是我在表单中插入的值。任何帮助将不胜感激。

【问题讨论】:

    标签: javascript node.js forms http


    【解决方案1】:

    您必须将body-parser 添加到您的 Express 应用中。

    var app = express();
    var bodyParser = require('body-parser');
    
    // parse application/x-www-form-urlencoded
    app.use(bodyParser.urlencoded({ extended: false }));
    
    // parse application/json
    app.use(bodyParser.json());
    

    但是,我看到您使用enctype='multipart/formdata' 声明了您的表单。这通常用于进行文件上传,如果确实需要,则需要使用another parser

    【讨论】:

    • 我正在尝试添加一个文件,所以我使用了 multipart/formdata。我已经包含了bodyparser的两行,只是忘了在这里复制。但是因为没有任何工作,我认为首先让文本工作,然后我会查看文件并评论文件上传部分。谢谢。
    • @JonathanLonowski 和 Edmundo Rodrigues 非常感谢您的反馈。当我从表单中删除多部分时,我能够发送数据。现在我将尝试使用 mulder 并希望它适用于这些文件。干杯。
    【解决方案2】:

    您需要 'body-parser' 中间件,但忘记在您的 express 应用程序中使用它。

    app.use(bodyParser.urlencoded())
    

    你不需要这个

    enctype="multipart/form-data"
    

    【讨论】:

    • 我的代码中已经有了 app.use(bodyParser.urlencoded()) 只是忘了复制到这里。我需要第二部分,因为我将来会使用文件上传。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-26
    • 2019-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-09
    相关资源
    最近更新 更多