获取类型错误:无法读取属性';内容长度';使用Node.js时的未定义值

获取类型错误:无法读取属性';内容长度';使用Node.js时的未定义值,node.js,express,typeerror,ejs,formidable,Node.js,Express,Typeerror,Ejs,Formidable,我正在尝试console.log一个我在输入中键入的数字。我收到一个错误,上面写着TypeError:无法读取未定义的的属性“content length”。我试图在代码中添加一个fs.readFile,但它不起作用 这是我的app.js const express = require('express'); const http = require('http'); const formidable = require('formidable'); const fs = require('fs

我正在尝试console.log一个我在输入中键入的数字。我收到一个错误,上面写着
TypeError:无法读取未定义的
的属性“content length”。我试图在代码中添加一个
fs.readFile
,但它不起作用

这是我的app.js

const express = require('express');
const http = require('http');
const formidable = require('formidable');
const fs = require('fs');
const ejs = require('ejs');
const path = require('path');
const multer = require('multer');
const upload = multer({ dest: 'upload/'});
const type = upload.fields([{ name: 'gradeNumber', maxCount: 10 }]);
const app = express();
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) {
    const form = new formidable.IncomingForm();
    form.parse(function (err, fields, files) {
        console.log(fields.gradeNumber);
        const oldpath = files.filetoupload.path;
        const 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);
<!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>
        
        <label>What Grade</label><input type="text" name="gradeNumber"><br>
        <input type="submit">
    </form>
</body>
                                                                            
</html>
upload.ejs

const express = require('express');
const http = require('http');
const formidable = require('formidable');
const fs = require('fs');
const ejs = require('ejs');
const path = require('path');
const multer = require('multer');
const upload = multer({ dest: 'upload/'});
const type = upload.fields([{ name: 'gradeNumber', maxCount: 10 }]);
const app = express();
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) {
    const form = new formidable.IncomingForm();
    form.parse(function (err, fields, files) {
        console.log(fields.gradeNumber);
        const oldpath = files.filetoupload.path;
        const 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);
<!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>
        
        <label>What Grade</label><input type="text" name="gradeNumber"><br>
        <input type="submit">
    </form>
</body>
                                                                            
</html>

上传文件

什么等级
我正在尝试使用名称“gradeNumber”记录输入。如果有人能帮助我,我将非常感激,因为我对此感到非常失望。

form.parse()方法中的“req”参数被省略

(方法)IncomingForm.parse(req:IncomingMessage,callback?:(err:any,fields:fields,files:files)=>any):void

尝试按如下所示更改代码

app.post('/fileupload', function (req, res) {
    const form = new formidable.IncomingForm();
    form.parse(req, function (err, fields, files) {
        console.log(fields.gradeNumber);
        const oldpath = files.filetoupload.path;
        const 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();
        });
    });
});