node-imap meteor パッケージを使用して電子メールを取得し、その電子メールを使用して、Guests コレクションでゲストを見つけます。Guest.findOne コードを含めると、「ファイバー エラーなしで待つことはできません」というメッセージが表示されます。これがコードです
function openInbox(cb) {
imap.openBox('INBOX', true, cb);
}
imap.once('ready', function() {
openInbox(function(err, box) {
if (err) throw err;
var f = imap.seq.fetch(box.messages.total + ':*', { bodies: ['HEADER.FIELDS (FROM SUBJECT DATE)','TEXT'] });
f.on('message', function(msg, seqno) {
console.log('Message #%d', seqno);
var prefix = '(#' + seqno + ') ';
msg.on('body', function(stream, info) {
if (info.which === 'TEXT')
console.log(prefix + 'Body [%s] found, %d total bytes', (info.which), info.size);
var buffer = '', count = 0;
stream.on('data', function(chunk) {
count += chunk.length;
buffer += chunk.toString('utf8');
if (info.which === 'TEXT')
console.log(prefix + 'Body [%s] (%d/%d)', (info.which), count, info.size);
});
stream.once('end', function() {
if (info.which !== 'TEXT') {
console.log(prefix + 'Parsed header: ');
var header = Imap.parseHeader(buffer);
var from = header.from;
email = from[0].slice(from[0].indexOf('<')+1, from[0].indexOf('>'));
fetched = true;
}
else
console.log(prefix + 'Body [%s] Finished', (info.which));
});
});
msg.once('attributes', function(attrs) {
console.log(prefix + 'Attributes: %s', (attrs, false, 8));
});
msg.once('end', function() {
console.log(prefix + 'Finished');
});
});
f.once('error', function(err) {
console.log('Fetch error: ' + err);
});
f.once('end', function() {
console.log('Done fetching all messages!');
imap.end();
if(fetched){
var guest = Guests.findOne({email: email}, {reactive: false}); // <-- this code causes the error
if(guest){
console.log(guest)
}
}
});
});
});
imap.once('error', function(err) {
console.log(err);
});
imap.once('end', function() {
console.log('Connection ended');
});
imap.connect();
だから私は Future.wait() に基づいて Meteor.bindEnvironment を実行しようとしました ファイバーなしでは待つことができません (Meteor.method で別の未来を待っている間)
function openInbox(cb) {
imap.openBox('INBOX', true, Meteor.bindEnvironment(cb));
}
そして、「未定義のプロパティ '_meteor_dynamics' を読み取れません」というエラー メッセージが表示されます。結合するファイバーがありませんか?私はまだMeteorにかなり慣れていないので、ここからどこへ行くべきか本当にわかりません. 何が起こっているのかについての説明と解決策は素晴らしいでしょう。どんな助けでも大歓迎です。