ノードデーモンを使用して定期的にメールボックスからメールをフェッチしたいと思います。接続方法の呼び出しはapp.js
で行われます。Javascriptオブジェクトにアクセスする - Node.jsのスコープの問題
私は私のメールボックス(mail.js
)への接続に使用するJavaScriptファイル:
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;
私はmail.js
から直接fetchMail()
を使用する場合は、すべてが正常です。しかし
、私はapp.js
からそれを呼び出すようにしてみてください。
var mail = require('./js/mail');
mail.fetchMail()
その後、mail.js
からfetchMail()
機能のメソッドの滞在とimap.once('ready', function())
がトリガされることはありません。
imap
の範囲では、mail.js
の範囲の問題だと思います。
どうすればこの問題を解決できますか?
EDIT
私は好きではない方法でこれを解決しました。 fecthMail()
関数の中にあるimap varに関連するものはすべて書きました。
ご迷惑をおかけしますが、より効率的な答えをお書きください。
あなたは 'module.exportsは= fetchmailのを試しました;' 'mail.js'に? – gurvinder372
はい、 'fetchMailは' app.js'の関数ではありません。 – Mornor
'app.js'ではなく、' mail.js'から最初にエクスポートし、 'require'を実行して' app.js'を使用する必要があります。 – gurvinder372