我的req.body.number未定义。我查看了之前的帖子,但它仍然不适合我。我只想在下一页看到输入的数字。
节点js
//Sending UDP message to TFTP server
//dgram modeule to create UDP socket
var express= require('express')
var fs= require('fs')
var util = require('util')
var bodyParser = require('body-parser')
var app = express()
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
// parse application/json
app.use(bodyParser.json())
app.get('/', function(req, res) {
var html = fs.readFileSync('index2.html');
res.writeHead(200, {'Content-Type': 'text/html'});
res.end(html);
});
app.post('/', function(req, res) {
console.log(req.body.number);
});
app.listen(3000, "192.168.0.172");
console.log('Listening at 192.168.0.172:3000')
HTML
<html>
<body>
<h1>Reading in Value</h1>
<form action="/" method="post" enctype='multipart/form-data'>
<br/>
<label>Enter a UDP command in hex</label>
<br/><br/>
<input type="number" name="number" id="number">
<br/><br/>
<input type="submit" value="Submit" name="submit">
</form>
</body>
</html>
答案 0 :(得分:2)
您在表单中使用enctype='multipart/form-data'
导致问题。
目前,body-parser
不支持multipart/form-data
。因此,req.body
未定义。
因此,如果您不必以该格式上传文件,最好将其更改为application/x-www-form-urlencoded
。
答案 1 :(得分:0)
只需更改
<form action="/" method="post" enctype='multipart/form-data'>
to
<form action="/" method="post" enctype='application/x-www-form-urlencoded'>
&#13;
享受:)