如何解决NodeJS:对于目录中的每个json文件,读取文件并在另一个JS文件中运行功能
试图做一阵子,但是没有运气,所以我发现自己在这里。
我基本上有2个Javascript文件( index.js 和 run.js ),以及一个名为 tasks 的文件夹,其中包含几个json名为run-1.json,run-2.json等的文件。
我要实现的是仅在终端中运行 index.js ,然后针对 tasks 文件夹中的每个json文件读取该json文件并抓取电子邮件,然后使用该电子邮件在 run.js 中运行名为登录的功能...
run-1.json,run-2.json等文件:
{
"email":"run1@gmail.com"
}
index.js文件:
const taskFolder = './tasks/';
const fsPromise = require('fs').promises;
const fs = require('fs');
fs.readdir(taskFolder,(err,files) => {
files.forEach(file => {
async function getTasks(){
let data = await fsPromise.readFile(`${taskFolder}${file}`);
let parsedData = JSON.parse(data);
email = parsedData.email;
// do something here that runs the login function in run.js using the email variable
}
getTasks();
});
});
run.js文件:
async function login(){
console.log(email);
}
所以基本上,如果我在task文件夹中有5个json文件,每个文件分别包含单独的电子邮件,分别是run1 @ gmail.com,run2 @ gmail.com,run3 @ gmail.com,run4 @ gmail.com,run5 @ gmail.com和运行index.js,输出应为:
run1@gmail.com
run2@gmail.com
run3@gmail.com
run4@gmail.com
run5@gmail.com
我希望这是有道理的,在此先感谢任何可以提供帮助的人!
解决方法
您可以将index.js文件更改为以下代码片段 并且还要求run.js文件访问登录功能
const taskFolder = './tasks/';
var run = require('./run')
var fs = require('fs')
async function getTasks(file) {
const fsPromise = require('fs').promises;
let data = await fs.readFileSync(`${taskFolder}${file}`);
let parsedData = JSON.parse(data);
email = parsedData.email;
run.login(email)
}
fs.readdir(taskFolder,(err,files) => {
files.forEach(getTasks);
});
修改run.js文件以导出可在index.js文件内使用的登录功能
function login(email){
console.log(email);
}
module.exports ={
login
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。