又是我。 :-D 我的下一个怪异问题是:
我有2个nodejs模块:
//module1.js
const prompt = require('prompt');
var Excel = require('exceljs');
var wbCO = new Excel.Workbook();
var iCO = 1;
wbCO.xlsx.readFile('costumers.xlsx').then(function (){
shCO = wbCO.getWorksheet("Sheet");
while (iCO <= shCO.rowCount){
console.log(shCO.getRow(iCO).getCell(1).value +" - "+ shCO.getRow(iCO).getCell(2).value);
iCO++;
}
});
prompt.start();
prompt.get([{name:'costumer', required: true, conform: function (value) {
return true;
}
}], function (key_err, key_result) {
if (key_err) { return onErr(key_err); }
var Ccostumer = shCO.getRow(key_result.costumer).getCell(2).value;
var user = shCO.getRow(key_result.costumer).getCell(3).value;
var pass = shCO.getRow(key_result.costumer).getCell(4).value;
function onErr(key_err) {
console.log(key_err);
return 1;
}
});
//module2.js
wb.xlsx.readFile('./'+Ccostumer+'/File.xlsx').then(function(){
sh = wb.getWorksheet("Sheet1");
start_page(sh);
});
async function start_page(sh){
var i = 2;
var result_id = 1;
const browser = await puppeteer.launch({headless: true});
while(i <= sh.rowCount){
var result_cell = sh.getRow(i).getCell(3).text;
await open_page(browser, result_cell, result_id);
i++;
result_id++;
}
browser.close();
}
async function open_page(browser, result_cell, result_id) {
const page = await browser.newPage();
page.setDefaultNavigationTimeout(100000);
await page.goto('https://www.mywebsite.com', {
waitUntil: 'networkidle2'
});
// authentication
await page.waitFor('input[name="ctl00$ContentPlaceHolder1$Signin1$txtEmail"]');
await page.$eval('input[name="ctl00$ContentPlaceHolder1$Signin1$txtEmail"]', elu => elu.value = user);
await page.waitFor('input[name="ctl00$ContentPlaceHolder1$Signin1$txtPassword"]');
await page.$eval('input[name="ctl00$ContentPlaceHolder1$Signin1$txtPassword"]', elp => elp.value = pass);
await page.click('input[type="submit"]');
await page.waitForNavigation();
//search
await page.waitFor('input[name="email"]');
await page.type('input[name="email"]', result_cell);
await page.click('input[type="submit"]');
我正在尝试通过const md1 = require('./ module1.js');从module2.js调用module1.js; 但是我没有得到变量,并且它们都同时运行。
这就是我的问题:
1-在module1.js中做出选择后,如何运行module2.js,然后按Enter。
2-如何解析那些从module1.js到module2.js的变量(Ccostumer,user,pass)。