Я пытаюсь заставить логин работать в планировщике, но получаю ошибку module.exports.report.logon is not a function
. Это код:module.exports.report.logon не является функцией
const cron = require('node-cron');
const cms = require("g4js-cognos").Cms;
module.exports.report = new cms(url, namespace, usr, psw);
let task = cron.schedule('*/1 * * * *', function() {
logonToCognos();
}, true);
task.start();
function logonToCognos() {
module.exports.report.logon().then((response) => { // THE ERROR
console.log(" LOGGED on, status: " + response.statusCode);
}).catch((error) => {
console.log(" Logon on fail: " + error);
});
}
Когда я не использую scheduller и module.exports.report
находится вне функции, все работает отлично:
const cms = require("g4js-cognos").Cms;
module.exports.report = new cms(url, namespace, usr, psw);
module.exports.report.logon().then((response) => {
console.log(" LOGGED on, status: " + response.statusCode);
}).catch((error) => {
console.log(" Logon on fail: " + error);
});
Кроме того, если я не использую module.exports, он работает нормально (но мне нужно использовать экспорт, потому что он мне нужен в другом модуле):
const cms = require("g4js-cognos").Cms;
const report = new cms(url, namespace, usr, psw);
let task = cron.schedule('*/1 * * * *', function() {
logonToCognos();
}, true);
task.start();
function logonToCognos() {
report.logon().then((response) => { // NO ERROR
console.log(" LOGGED on, status: " + response.statusCode);
}).catch((error) => {
console.log(" Logon on fail: " + error);
});
}
Любые идеи? Почему mod.exports работает так по-другому? Благодарю.
Вероятно, что-то делать с размахом. Вы попадаете в область функций logonToCognos, поэтому модуль не может быть определен. Вы пытались передать построенные cms в качестве параметра функции? – kriddy800
Если вместо module.exports.report, я помещаю сообщение const, тогда он работает нормально. Почему mod.export ведет себя так по-другому? – ljerka
Я редактировал вопрос, чтобы иметь этот пример. – ljerka