从数据库中获取文件后,无法将项目推送到数组中。

我从数据库的一个名为file_uploads的集合中获取文件,同时,我从另一个地方获取目录中的文件并将其存储在files_to_read[]中。同时,我从另一个地方获取目录文件,并将其存储在 files_to_read []中。 循环浏览两个文件,我正在匹配文件,然后将其推送到 files_to_simulate 数组。

const fs = require('fs')
let folder = '../../importedFiles/data';
let files_to_read = []
let files = fs.readdirSync(folder);
let fileSchema = require('../db/models/fileUpload');
let files_to_simulate = [];

files.forEach(file => {
    let fileStat = fs.statSync(folder + '/' + file).isDirectory();
    if(!fileStat) {
        files_to_read.push(file);
    }
});

fileSchema.find({}, async function(err, files) {
    files.forEach(function(file) {
        files_to_read.forEach(function(directoryFile) {
            var dbFile = file.name.split('.');
            let dirFile = directoryFile.split('.');
            if (dbFile[0] === dirFile[0]) {
                console.log('saa')
                files_to_simulate.push(dirFile[0]);
            }
        })
    })
});

console.log(files_to_simulate)

解决方案:

改变你的代码顺序,它将工作正常。

const fs = require('fs')
let folder = '../../importedFiles/data';
let files_to_read = []
let files = fs.readdirSync(folder);
let fileSchema = require('../db/models/fileUpload');
let files_to_simulate = [];

files.forEach(file => {
    let fileStat = fs.statSync(folder + '/' + file).isDirectory();
    if(!fileStat) {
        files_to_read.push(file);
    }
});

fileSchema.find({}, async function(err, files) {
    files.forEach(function(file) {
        files_to_read.forEach(function(directoryFile) {
            var dbFile = file.name.split('.');
            let dirFile = directoryFile.split('.');
            if (dbFile[0] === dirFile[0]) {
                console.log('saa')
                files_to_simulate.push(dirFile[0]);
            }
        })
    })
// If you want to have the result you need to call a function here
console.log(files_to_simulate)
});

如果你想导出你需要这个:

const fs = require('fs')
let folder = '../../importedFiles/data';
let files = fs.readdirSync(folder);
let fileSchema = require('../db/models/fileUpload');
// in the destination file just give it a callback
module.exports = function(callback){
let files_to_read = []
let files_to_simulate = [];

files.forEach(file => {
    let fileStat = fs.statSync(folder + '/' + file).isDirectory();
    if(!fileStat) {
        files_to_read.push(file);
    }
});

fileSchema.find({}, async function(err, files) {
    files.forEach(function(file) {
        files_to_read.forEach(function(directoryFile) {
            var dbFile = file.name.split('.');
            let dirFile = directoryFile.split('.');
            if (dbFile[0] === dirFile[0]) {
                console.log('saa')
                files_to_simulate.push(dirFile[0]);
            }
        })
    })
// If you want to have the result you need to call a function here
callback(files_to_simulate)
});
}

在这里你可以读到 JavaScript中的异步

给TA打赏
共{{data.count}}人
人已打赏
未分类

提交表单.html与数据在SPA(反应)?

2022-9-8 18:32:03

未分类

如何通过分配和分组obj?

2022-9-8 18:58:25

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索