如何从Node.js IMAP模块中获取纯文本

我正在使用Node.js的IMAP模块来parsingIMAP电子邮件的正文。 我可以将原始的HTML数据返回给我,但是这包括标签和其他不必要的数据。 我想要input的内容(删除任何div,样式等)

这是我目前使用的代码:

openInbox(function(err, box) { if (err) throw err; var f = imap.seq.fetch(box.messages.total + ':*', { bodies: ['HEADER.FIELDS (FROM)','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 + '\n\nBody [%s] found, %d total bytes\n\n\n', inspect(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)', inspect(info.which), count, info.size); }); stream.once('end', function() { if (info.which !== 'TEXT') console.log(prefix + 'Parsed header: %s', inspect(Imap.parseHeader(buffer))); else console.log(prefix + 'Body [%s] Finished', inspect(info.which)); console.log('\n\n\n\n'+buffer.toString()+'\n\n\n\n\n\n'); }); }); msg.once('attributes', function(attrs) { console.log(prefix + 'Attributes: %s', inspect(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(); }); }); 

有没有办法parsing为纯文本没有任何标签或其他HTML信息?

有一个节点模块为此devise: https : //www.npmjs.com/package/html-to-text

 var htmlToText = require('html-to-text'); var text = htmlToText.fromString('<h1>Hello World</h1>', { wordwrap: 130 }); console.log(text); 

它也很好地parsing表格到文本。