如何避免Node.js Evernote API 2.0.0-beta中的“Membuffer overrun”

时间:2016-12-16 17:42:16

标签: node.js evernote

使用新API,我使用以下代码获得MemBuffer溢出异常:

var evernoteClient =  new Evernote.Client({token: process.env.EVERNOTE_TOKEN});

var store = evernoteClient.getNoteStore(process.env.EVERNODE_NODESTORE);
var filter = new Evernote.NoteStore.NoteFilter();
filter.words = "tag:ttesstt";
var spec = new Evernote.NoteStore.NotesMetadataResultSpec();
spec.includeTitle = true;
spec.includeAttributes = true;
console.log(spec);

store.findNotesMetadata(filter,0,1,spec)
  .then(result=> {
    console.log("RESULT", result.notes[0].guid)
    var noteSpec = new Evernote.NoteStore.NoteResultSpec()
    noteSpec.includeContent = true;
    store.getNoteWithResultSpec(result.notes[0].guid, noteSpec)
        .then( note => {
          console.log("NOTE", note)
        })
  })
  .catch(err=>{console.log("ERR:", err)})

使用此stacktrace:

Error: MemBuffer overrun
at Error (native)
at MemBuffer.read (/app/node_modules/evernote/lib/thrift/transport/memBuffer.js:29:55)
at BinaryProtocol.readString (/app/node_modules/evernote/lib/thrift/protocol/binaryProtocol.js:333:29)
at BinaryProtocol.readType (/app/node_modules/evernote/lib/thrift/protocol/binaryProtocol.js:353:25)
at Object.Thrift.Struct.readFields (/app/node_modules/evernote/lib/thrift/thrift.js:505:49)
at Thrift.Struct.read (/app/node_modules/evernote/lib/thrift/thrift.js:485:19)
at Object.Thrift.Struct.readFields (/app/node_modules/evernote/lib/thrift/thrift.js:503:53)
at Thrift.Struct.read (/app/node_modules/evernote/lib/thrift/thrift.js:485:19)
at Thrift.Method.processResponse (/app/node_modules/evernote/lib/thrift/thrift.js:204:26)
at .<anonymous> (/app/node_modules/evernote/lib/thrift/thrift.js:165:42)

如果我通过将第15行更改为includeContentfalse设置为noteSpec.includeContent = true; ,则不会发生此类错误:

$doc = new DOMDocument();
$doc->loadHTML('<html><body><img class="aligncenter" style="display: block;margin-left:auto;margin-right:auto;" src="http://img.zszywka.com/0/0269/w_0980/moj-swiat/muza-2013-najnowsze-eska-hity-2013-.jpg" width="642" /></body></html>');
$images = $doc->getElementsByTagName('img');
foreach ($images as $img) {
    $url = $img->getAttribute('src');
    // do whatever you need to with $url
    $url = str_replace('img.zszywka.com', 'example.com', $url);
    $img->setAttribute('src', $url);
}
echo $doc->saveHTML();

有没有办法避免这个错误?

0 个答案:

没有答案