获取TypeError:使用Node.js Formidable

如何解决获取TypeError:使用Node.js Formidable

我正在尝试console.log使用强大输入在输入中键入的数字。我收到一个错误提示TypeError: Cannot read property 'content-length' of undefined。我尝试将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',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);

upload.ejs

<!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(要求:IncomingMessage,回调?:(错误:任何,字段:字段,文件:文件)=>任何):无效

尝试如下更改代码。

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();
        });
    });
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?