无法读取未定义的属性/ req.body返回未定义

时间:2020-06-06 07:28:20

标签: node.js express

我正在尝试执行Express中最基本的POST请求,但我的req.body始终返回未定义状态,我已经在Google搜索了类似的问题,但找不到适合我的解决方案。

HTML表单:

            <form method="POST" class="vote">
                <input type="text" name="test">
                <button type="submit">TEST VOTE</button>
            </form>

以及在我的post.js文件中

const express = require('express');
const app = express();
app.use(express.urlencoded({
    extended: true
}));
    app.post('/test', function (req, res) {
        console.log('post to /test');
        var data = req.body.test;
        console.log(data);

我在做什么错了?

2 个答案:

答案 0 :(得分:0)

尝试使用body-parser节点模块,它将解析发布数据并将其附加到request对象上,以便您可以访问它。

body-parser提取传入请求流的整个正文部分并将其公开在request.body中。

const express = require('express');
const bodyParser = require("body-parser");
const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

app.post('/test', function (req, res) {
    console.log('post to /test');
    var data = req.body;
    console.log(data);
    //rest of the code
}

答案 1 :(得分:0)

实际上,您没有在“表单”标签中设置“操作”字段。 您必须将操作字段设置为 action =“ / test”