Javascript 从表单上载文件读取文件内容

Javascript 从表单上载文件读取文件内容,javascript,node.js,express,Javascript,Node.js,Express,我使用以下代码从文件系统读取get文件 代码来自一篇名为的博客文章 当我运行我的项目时,我能够看到UI等 我无法使用以下代码,因为我的项目中没有uploads文件夹(form.uploadDir) 我的问题是,我应该如何使用代码从UI获取文件 在上面当我选择我的文件时,我需要从表单中获取文件内容 应用程序已部署到云中,当我使用localhost时,我使用以下代码(有效) 它使用正确的路径从文件系统创建一个文件,并用另一个文件覆盖它(如这里的index.html)。正如@aedneo所说,当用

我使用以下代码从文件系统读取get文件 代码来自一篇名为的博客文章

当我运行我的项目时,我能够看到UI等

我无法使用以下代码,因为我的项目中没有
uploads
文件夹(
form.uploadDir

我的问题是,我应该如何使用代码从UI获取文件 在上面当我选择我的文件时,我需要从表单中获取文件内容

应用程序已部署到云中,当我使用
localhost
时,我使用以下代码(有效)


它使用正确的路径从文件系统创建一个文件,并用另一个文件覆盖它(如这里的
index.html
)。

正如@aedneo所说,当用户选择文件时,文件是在上载文件夹中创建的,我只需要重命名它并为写流方法提供正确的路径,它就可以工作了

文件不是
表单回调中的第二个参数吗?('file'.
@adeneo)-这是我的想法,但E2E不起作用…(我将应用部署到云端,因此调试它非常困难…)有一种简单的方法可以打印上传到控制台的文件(从
表单('file'.
)(日志正在运行…)我将能够看到我在表单中选择的文件内容是在云中读取的…因此这有点棘手…没有云,它只是一群其他人的计算机连接在一起。要记录文件,
console.log(文件)
我想到了事件处理程序内部?@adeneo-我使用你的建议,比如:
console.log(“文件是->”+文件);
我进入控制台
出来的文件是->[object object]
,如果我要写它,我应该使用like
readStream.pipe(文件)
?请将其写为答案,我将结束问题。谢谢!@adeneo-请添加您的建议作为答案,以便我可以结束问题并解决。谢谢
app.post('/upload', function(req, res){

    // create an incoming form object
    var form = new formidable.IncomingForm();

    // specify that we want to allow the user to upload multiple files in a single request
    form.multiples = true;

    // store all uploads in the /uploads directory - cannot use it
    //form.uploadDir = path.join(__dirname, '/uploads');

    // every time a file has been uploaded successfully,
    // rename it to it's original name
    form.on('file', function(field, file) {
        fs.rename(file.path, path.join(form.uploadDir, file.name));
    });

    // log any errors that occur
    form.on('error', function(err) {
        console.log('An error has occurred: \n' + err);
    });

    // once all the files have been uploaded, send a response to the client
    form.on('end', function() {
        res.end('success');
    });
    // parse the incoming request containing the form data
    form.parse(req);

});
const readStream = fs.createReadStream("./file.html");
const writeStream = sftp.createWriteStream("/index.html");
readStream.pipe(writeStream);