Ich möchte Mail aus einem Postfach regelmäßig mit einem Node-Daemon abrufen. Der Aufruf der Verbindungsmethode erfolgt in app.js
.Zugriff auf Javascript-Objekt - Umfang Problem mit Node.js
Die Javascript-Datei, die ich nutzen, um meine Mailbox (mail.js
) zu verbinden:
var imap = new Imap({
user: '[email protected]',
password: config.get.gmail_password,
host: 'xxxxx',
port: 993,
tls: true
});
var fetchMail = function()
{
console.log('Connection');
imap.connect();
};
//fetchMail();
imap.once('ready', function() {
console.log('Ready');
imap.search([ 'UNSEEN', ['FROM', 'xxxx'] ], function(err, results)
{
// Do Stuff
}
exports.fetchMail = fetchMail;
Wenn ich fetchMail()
von mail.js
direkt verwenden, ist alles in Ordnung.
Allerdings, wenn ich versuche, es zu nennen von app.js
:
var mail = require('./js/mail');
mail.fetchMail()
Dann wird das Verfahren Aufenthalt in der fetchMail()
Funktion von mail.js
und die imap.once('ready', function())
wird nie ausgelöst.
Ich denke, es ist ein Problem Bereich mit der imap
var in mail.js
.
Wie kann ich das beheben?
EDIT
Ich löste dies in einer Art und Weise Ich mag es nicht. Ich schrieb alles im Zusammenhang mit der Imap var innerhalb der fecthMail()
Funktion.
Bitte zögern Sie nicht, eine effizientere Antwort zu diesem Thema zu schreiben.
Haben Sie versucht, 'module.exports = Fetchmail;' in 'mail.js'? – gurvinder372
Ja, aber 'fetchMail ist keine Funktion' in' app.js'. – Mornor
Nicht in 'app.js', müssen Sie zuerst von' mail.js' exportieren und dann 'app.js' verwenden, indem Sie' require' eingeben. – gurvinder372