node.js&express:req.body undefined?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (445)

我目前正在设计一个使用快速的简单浏览器应用 我试图提取用户在下拉菜单中选择的值。我也给每个选项一个单独的值,并已将表单的方法声明为/ post。但是当我尝试通过进入时选择哪个值时req.body,值是未定义的。

我认识到,问题可能在于body parser浏览类似的问题,但是这些问题的解决方案并没有req.body被定义。

这是我的应用程序构建代码

const app = express()
app.use(express.static(__dirname, ''));
app.engine('html', require('ejs').renderFile);
app.set('views', __dirname + '/public/views');
app.use(express.urlencoded());
app.set('view engine', 'html');
const server = http.createServer(app);

这里是邮政处理的代码

app.get('/detailed', function(req,res){
    res.send(displayDetailed(results, req));
});
app.post('/detailed', function(req,res){
    res.send('Hello world');
    console.log(req.body);

});

当我在localhost:8080 /详细信息中发布某些内容时,hello世界的回报很好,但req.body是空的(返回值为{})。displayDetailed函数是一个自定义函数,它返回一个html字符串,其中包含从Google图纸API获取请求中提取的值。由于我没有使用保存的html文档,这是否会影响过程?

提问于
用户回答回答于

req.body在异步函数之外调用(构造html的函数被调用时),req.body返回非常好。我会修改我的项目来解决这个问题。

用户回答回答于

你是否设置了身体分析器以供快速使用?你可以只是npm安装body-parser,然后把它们放到你的代码中。

const bodyParser = require('body-parser')
app.use(bodyParser.json())

扫码关注云+社区

领取腾讯云代金券