我正在尝试执行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);
我在做什么错了?
答案 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”