Я создаю приложение Electron с Vue.js в качестве клиентской среды.Когда я пытаюсь запустить скрипт узла, я получаю Uncaught (в обещании) TypeError: self._form.on не является функцией
Я не уверен, что это из-за того, чтозапустить в браузере через электрон, но он работает нормально, когда я запускаю скрипт через Node в консоли.Можно ли вообще запустить этот сценарий на стороне клиента?Я запускаю файл узла через один из компонентов frontend vue.js, требуя файл. let raffleScript = require ('../ raffles / index.js');
Сценарий узла:
var cheerio = require('cheerio');
var fs = require('fs');
var retryDelay = 300;
var tasks = 200;
var userAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36';
var tasksComplete = 0;
var exportedCount = 0;
// Export the values
//setInterval(countUpdate, 4000);
initProxies();
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function initProxies() {
for (var i = 0; i < tasks; i++) {
submitRaffle(i);
await sleep(retryDelay);
// setTimeout(function () {
// submitRaffle(i);
// }, retryDelay)
}
}
function submitRaffle(taskNum) {
var jar = require('request').jar()
var request = require('request').defaults({
jar: jar
});
console.log('Making request.............................');
request({
url: 'bungeedesign.com/dev',
method: 'POST',
headers: {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36',
'Content-Type': 'application/x-www-form-urlencoded'
},
formData:
{ firstname: 'James',
name: '',
lastname: 'Rogers',
mobileNumber: '00000000',
email: 'email@email.com',
raffle_type: 'Development',
checkbox_0: 'Backend',
personal_or_business: 'Personal',
model: 'Register Of Interests',
'submit-0': 'Keep me posted' },
}, function (error, response, body) {
// console.log('REQ RES --------->>>> ', response);
//console.log('Req Completed', response);
if (error) {
console.log('Error.............................');
setTimeout(function () {
submitRaffle(taskNum)
}, retryDelay)
return;
}
$ = cheerio.load(body);
if (response.statusCode == 302) {
//if (JSON.parse(body).message == "successfully") {
console.log('\x1b[1;32m', "[" + taskNum + "] - Raffle entry submitted");
tasksComplete++;
//module.exports.exportedCount = tasksComplete;
console.log('\x1b[1;32m', "[" + taskNum + "] - " + tasksComplete + " Entries submitted.")
//}
} else {
setTimeout(function () {
submitRaffle(taskNum)
}, retryDelay)
return;
}
});
}
// Increment Exports
// function countUpdate() {
// module.exports.exportedCount = exportedCount++;
// }
Компонент Main.vue (скрипт)
let raffleScript = require('../raffles/index.js');
export default {
data() {
return {
amount: '0'
}
},
methods: {
async register() {
try {
await AuthenticationService.register({
key: this.key
})
} catch (error) {
this.error = error.response.data.error
}
},
async entryAmountChange() {
let entryAmount = document.querySelector('.tsEntryAmount').value;
let replaced = entryAmount.replace(/\D/g, "").replace(/\B(?=(\d{3})+(?!\d))/g, ",");
document.querySelector('.tsEntryAmount').value = replaced;
},
async runRaffle() {
console.log("Log: ", raffleScript.exportedCount);
this.entryAmount = raffleScript.exportedCount;
},
runTime: function() {
function checkTime(i) {
return (i < 10) ? "0" + i : i;
}
function startTime() {
let today = new Date(),
h = checkTime(today.getHours()),
m = checkTime(today.getMinutes()),
s = checkTime(today.getSeconds());
let timeElement = document.querySelector('#time');
let time = h + ":" + m + ":" + s;
// this.time = "dsdsd";
document.querySelector('#time').innerHTML = time;
setTimeout(function () {
startTime()
}, 500);
}
startTime();
},
async getValues() {
console.log("Log: ", raffleScript.tasksComplete);
}
},
mounted(){
this.runTime();
this.getValues();
this.runRaffle();
}
}