Node.js 当在输入中记录编号时,我得到;“未定义”;

Node.js 当在输入中记录编号时,我得到;“未定义”;,node.js,forms,express,ejs,body-parser,Node.js,Forms,Express,Ejs,Body Parser,我试图使用主体解析器来记录我在输入中键入的数字 我的HTML代码: <!DOCTYPE html> <html> <head> <title>Upload File</title> </head> <body> <form action="fileupload" method="post" enctype="multipart/form-

我试图使用主体解析器来记录我在输入中键入的数字

我的HTML代码:

<!DOCTYPE html>
<html>

<head>
    <title>Upload File</title>
</head>

<body>
    <form action="fileupload" method="post" enctype="multipart/form-data">
        <input type="file" name="filetoupload"><br>
        
        <lable>What Grade</lable><input type="text" name="gradeNumber"><br>
        <input type="submit">
    </form>
</body>

</html>
当我运行项目时,我得到值“undefined”。我知道我可能犯了一个严重的错误,因为我是初学者。如果有人能帮忙,那就太好了

我发现答案就是你们想要的。基本上,主体解析器不支持多部分主体。通过使用表单,可以在表单数据下而不是正文下发送数据。因此,当您访问req.body.gradeNumber时,您得到的是未定义的

const express = require('express');
const formidable = require('formidable');
const fs = require('fs');
const path = require('path');
const bodyParser = require("body-parser");
const app = express();
app.use(bodyParser.urlencoded({extended:true}));
app.use(express.static(__dirname + '/public'));
app.set('view engine', 'ejs');
app.get('/fileupload', function (req, res) {
    res.render("upload")
});



app.post('/fileupload', function (req, res) {
    console.log(req.body.gradeNumber);
    var form = new formidable.IncomingForm();
    form.parse(req, function (err, fields, files) {
        var oldpath = files.filetoupload.path;
        var newpath = 'C:/Users/Shubh Computer/Desktop/VSCode/Grades/1/' + files.filetoupload.name;
        fs.rename(oldpath, newpath, function (err) {
            if (err) throw err;
            res.write('File uploaded and moved!');
            res.end();
        });
    });
});
app.listen(3000);