首页 > 解决方案 > 使用 node.js 将文件上传到服务器时出错

问题描述

我正在尝试将一张 excel 表上传到服务器。它工作得很好,但有时它会中断。由于没有这样的文件或目录而出现错误。

// Request = request.payload.file, id= unique string

const brinksFilePath = './uploads/';
const fs = require('fs');

let uploadFile = async (request, id) => {
    
    let data = request;
    let type = id + '/';
    let name = data.hapi.filename;
    let path = brinksFilePath + type + name;

    try {

       
        const file = fs.createWriteStream(path);

        if (!fs.existsSync(brinksFilePath + type)) {
            console.log("Path not found making directory ")
            fs.mkdirSync(brinksFilePath + type);
        }
        
        file.on('error', (err) => console.error(err));

        data.pipe(file);
        

        data.on('end', (err) => {
           
            const ret = {
                filename: data.hapi.filename,
                headers: data.hapi.headers
            }
        })
         

    } catch (error) {
        console.log("error -----", error)
    }

return  path
    
}

错误如下

{ [Error: ENOENT: no such file or directory, open 'C:\Users\Desktop\api\uploads\aegrghthtrhtre\REPORT_02.2021.xlsx']
  errno: -4058,
  code: 'ENOENT',
  syscall: 'open',
  path:
   'C:\Users\Desktop\api\uploads\aegrghthtrhtre\REPORT_02.2021.xlsx' }

如果我在系统中浏览相同的路径,则会创建一个文件夹,但我没有看到任何文件。

标签: javascriptnode.jselectron

解决方案


推荐阅读