记录时使用Imap时NodeJS类型错误

jxct1oxe  于 2023-02-03  发布在  Node.js
关注(0)|答案(1)|浏览(147)

我不知道为什么,但突然,每次我试图登录我的应用程序,我得到以下错误:

.\node_modules\imap\lib\Connection.js:206
var type = self._curReq.type;
TypeError: Cannot read property 'type' of undefined
at Parser.<anonymous> (.\node_modules\imap\lib\Connection.js:206:28)
at Parser.emit (events.js:95:17)
at Parser._resContinue (.\node_modules\imap\lib\Parser.js:295:8)
at Parser._parse (.\node_modules\imap\lib\Parser.js:140:16)
at Parser._tryread (.\node_modules\imap\lib\Parser.js:82:15)
at CleartextStream.Parser._cbReadable (.\node_modules\imap\lib\Parser.js:53:12)
at CleartextStream.emit (events.js:92:17)
at emitReadable_ (_stream_readable.js:410:10)
at _stream_readable.js:403:7
at process._tickCallback (node.js:419:13)```

我试图注解这些行,但每次都出现以下错误:

events.js:72
    throw er; // Unhandled 'error' event
Error: Timed out while authenticating with server
at null._onTimeout (.\node_modules\imap\lib\Connection.js:133:17)
at Timer.listOnTimeout [as ontimeout] (timers.js:110:15)```

有时候我也会得到第二个而不是第一个,即使行没有注解。有人知道发生了什么吗?一个解决方案或至少一个解释?

oknwwptz

oknwwptz1#

这是(.\node_modules\imap\lib\Connection.js:206:28)中缺少If条件的问题。我最近遇到了这个问题,我发现解决这个问题的唯一可能方法是在上面的文件中添加If Check,即

parser.on('continue', function(info) {
    if(self._curReq)
   { var type = self._curReq.type;
    if (type === 'IDLE') {
      if (self._queue.length
          && self._idle.started === 0
          && self._curReq
          && self._curReq.type === 'IDLE'
          && self._sock
          && self._sock.writable
          && !self._idle.enabled) {
        self.debug && self.debug('=> DONE');
        self._sock.write('DONE' + CRLF);
        return;
      }
      // now idling
      self._idle.started = Date.now();
    } else if (/^AUTHENTICATE XOAUTH/.test(self._curReq.fullcmd)) {
      self._curReq.oauthError = new Buffer(info.text, 'base64').toString('utf8');
      self.debug && self.debug('=> ' + inspect(CRLF));
      self._sock.write(CRLF);
    } else if (type === 'APPEND') {
      self._sockWriteAppendData(self._curReq.appendData);
    } else if (self._curReq.lines && self._curReq.lines.length) {
      var line = self._curReq.lines.shift() + '\r\n';
      self.debug && self.debug('=> ' + inspect(line));
      self._sock.write(line, 'binary');
    }}
    else{
      console.log("self._curReq.type not found")
      return;
    }
  });

相关问题