从数据库获取文件后无法将项目推送到数组中
Not able to push the items into an array after geting files from database
我正在从数据库中名为 file_uploads 的集合中获取文件。同时,我正在从另一个位置获取目录文件并将其存储在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)
});
}
在这里您可以阅读有关 Asynchronous in JavaScript
我正在从数据库中名为 file_uploads 的集合中获取文件。同时,我正在从另一个位置获取目录文件并将其存储在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)
});
}
在这里您可以阅读有关 Asynchronous in JavaScript