我正在使用中间件body-parser对表单值进行编码以获取req.body对象.但是当我调试我的代码时,发现req.body是未定义的.这是我的代码
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: false }));
Run Code Online (Sandbox Code Playgroud)
收听发帖请求
app.post('/newCategory', function (req,res) {
//express attached the form encoded values into body
var categoryName = req.body.categoryName;
});
Run Code Online (Sandbox Code Playgroud)
Html表格
<form action="/newCategory" role="form" method="post" class="form-inline">
<input type="text" name="categoryName" placeholder="Category name" class="form-control" />
<input type="submit" value="New Category" class="btn btn-primary" />
</form>
Run Code Online (Sandbox Code Playgroud)
小智 12
刚遇到同样的问题.看起来我通过将代码移动到urlencoded行之后映射路由来解决我的问题.我现在在帖子中看到了req.body.
app.use(bodyParser.urlencoded({ extended: true }));
// Map routes
var controllers = require("./controllers");
controllers.init(app);
Run Code Online (Sandbox Code Playgroud)
这解决了我的问题
var bodyParser = require('body-parser');
var app=express();
app.use(bodyParser.urlencoded());
app.use(bodyParser.json());
Run Code Online (Sandbox Code Playgroud)
希望这有帮助
如果您使用 urlencoded with { extended:false },req.body将从表单中返回未解析的原始字符串categoryName=test。意义req.body.categoryName将是不确定的。
尝试传递 true,以便它可以使用 qs 模块解析表单数据。
app.use(bodyParser.urlencoded({
extended: true
}));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30680 次 |
| 最近记录: |