Javascript 复制到另一个文件夹时文件中出现错误

Javascript 复制到另一个文件夹时文件中出现错误,javascript,node.js,file,fs,sharp,Javascript,Node.js,File,Fs,Sharp,我有一个web应用程序,可以上载文件,将文件转换为tiff格式,拆分页面,并将其另存为一个文件。之后,我需要重命名这些文件并将它们复制到另一个文件夹中。 分割后的文件看起来很好,但当我将它们复制到另一个文件夹时,第一个文件被损坏,只有最后一个文件被正确移动 有人熟悉这种虫子吗?有什么建议可以避免吗 这是拆分页面的代码: const path = require('path'); const fs = require('fs-extra'); const config = require('con

我有一个web应用程序,可以上载文件,将文件转换为tiff格式,拆分页面,并将其另存为一个文件。之后,我需要重命名这些文件并将它们复制到另一个文件夹中。 分割后的文件看起来很好,但当我将它们复制到另一个文件夹时,第一个文件被损坏,只有最后一个文件被正确移动 有人熟悉这种虫子吗?有什么建议可以避免吗

这是拆分页面的代码:

const path = require('path');
const fs = require('fs-extra');
const config = require('config');

const sharp = require('sharp');
const namingFolder = config.get('naming-folder');

module.exports = async function (file, dst, converted_file_path) {
const { dir } = path.parse(dst);
await fs.mkdir(dir, { recursive: true });

const recievedName = file.recievedName;
const fileFolder = `${namingFolder}\\${file.id}`;
const fileTiff = sharp(converted_file_path);

await fileTiff
    .metadata()
    .then(function (metadata) {
        const pagesNum = metadata.pages;
        if (pagesNum > 1) {
            for (let i = 0; i < pagesNum; i++) {
                const filename = `${recievedName}-${i}.${metadata.format}`
                const filePath = `${fileFolder}\\${filename}`;
                sharp(converted_file_path, { page: i }).toFile(filePath)
            }
            return
        }
        return fileTiff.toFile(`${fileFolder}\\${recievedName}.${metadata.format}`)
    })
}

const config = require('config');
const path = require('path');
const fs = require('fs-extra');

const filesCounter = require('../../database/models/filesCounter');
const namingFolder = config.get('naming-folder');
const dispatchedFolder = config.get('dispatched-folder');

module.exports = async (file, failed) => {
const srcDirPath = `${namingFolder}\\${file.id}`
const files = await fs.readdir(srcDirPath);

if (!files || files.length === 0) {
    throw new Error(`Dispatch failed, no files found.`);
}

files.sort();
const dest = path.join(dispatchedFolder, file.regNum);
if (!await fs.pathExists(dest)) {
    await fs.mkdir(dest, { recursive: true });
}

let num = await filesCounter.reserveNumbers(files.length, file.regNum); /* the ending for file name  

try {
    files.map(file => {
        const filePath = path.join(dest, `${file.regNum} - ${num++}${failed ? ' (failed)' : ''}.tiff`);
        fs.copy(path.join(srcDirPath, file), filePath)
    })

} catch (err) {
    if (err.message === 'dest already exists.')
        throw new Error('Untracked files at dispatch folder. Count incorrect.');
    else throw err;
}

try {
    await fs.rmdir(path.join(namingFolder, `${file.id}`));
}
catch (err) {
}