javascript - 如何在 Express 中访问 POST 表单字段

标签 javascript node.js post express

这是我的简单表格:

<form id="loginformA" action="userlogin" method="post">
    <div>
        <label for="email">Email: </label>
        <input type="text" id="email" name="email"></input>
    </div>
<input type="submit" value="Submit"></input>
</form>

这是我的Express.js/Node.js 代码:

app.post('/userlogin', function(sReq, sRes){    
    var email = sReq.query.email.;   
}

我试过 sReq.query.emailsReq.query['email']sReq.params['email'],等等。它们都不起作用。它们都返回 undefined

当我更改为 Get 调用时,它可以工作,所以.. 有什么想法吗?

最佳答案

事情有changed再次启动 Express 4.16.0,您现在可以像在 中一样使用 express.json()express.urlencoded() Express 3.0

这是 different开始 Express 4.0 到 4.15:

$ npm install --save body-parser

然后:

var bodyParser = require('body-parser')
app.use( bodyParser.json() );       // to support JSON-encoded bodies
app.use(bodyParser.urlencoded({     // to support URL-encoded bodies
  extended: true
})); 

其余的就像 Express 3.0 中的:

首先你需要添加一些中间件来解析body的post数据。

添加以下一行或两行代码:

app.use(express.json());       // to support JSON-encoded bodies
app.use(express.urlencoded()); // to support URL-encoded bodies

然后,在您的处理程序中,使用 req.body对象:

// assuming POST: name=foo&color=red            <-- URL encoding
//
// or       POST: {"name":"foo","color":"red"}  <-- JSON encoding

app.post('/test-page', function(req, res) {
    var name = req.body.name,
        color = req.body.color;
    // ...
});

注意使用express.bodyParser()不推荐。

app.use(express.bodyParser());

...等价于:

app.use(express.json());
app.use(express.urlencoded());
app.use(express.multipart());

express.multipart() 存在安全问题,因此最好明确添加对您需要的特定编码类型的支持。如果您确实需要多部分编码(例如支持上传文件),那么您应该 read this .

关于javascript - 如何在 Express 中访问 POST 表单字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5710358/

相关文章:

javascript - 在 Node js 中解析 Json Twitter 响应

javascript - 如何在next js中使用组件级sass文件

mysql - TypeORM QueryRunner 选择不同的

node.js - 分析node.js中的日志文件

php - 如何使用 PHP 接收通过 POST 请求提交的图像(文件)

javascript - 如何在 VS Code 中的函数名称和左括号之间添加空格

javascript - 在 Mongoose 中组织静态函数

php - MySQL查询无法读取PHP变量

javascript - 传递具有相同参数名称的多个 POST 参数

javascript - jvectormap - 在预定义为选定的区域上禁用 onclick 事件