You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Evernote Node.js SDK创建含图片资源的笔记时,图片仅显示左侧缩略图未在笔记内容中展示的问题求助

Evernote 笔记图片仅显示左侧缩略图,正文不显示的解决办法

我一眼就发现问题所在了!你在makeNote函数里犯了个很容易踩的顺序坑——你先把初始的nBody赋值给了ourNote.content,之后才把引用图片的<en-media>标签追加到nBody里,但这时候ourNote.content根本没同步更新。相当于你给Evernote传的笔记内容还是没有图片引用的旧版本,所以图片只会出现在左侧附件栏,正文里完全找不到它的身影。

下面是修正后的完整makeNote函数,核心就是调整代码顺序,确保包含图片引用的完整内容被赋值给笔记对象:

function makeNote(noteStore, noteTitle, noteBody, parentNotebook, resources) {
  var nBody = '<?xml version="1.0" encoding="UTF-8"?>';
  nBody += '<!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml2.dtd">';
  nBody += '<en-note>' + noteBody;

  // 先处理资源引用标签,把它们加入到nBody中
  if (resources && resources.length > 0) {
    nBody += '<br /><br />';
    for (var i in resources) {
      nBody += 'Attachment with hash: <br /><en-media type="' + resources[i].mime + '" hash="' + resources[i].data.bodyHash + '" width="200" height="200" /><br />';
    }
  }

  // 最后闭合标签,再把完整的内容赋值给笔记对象
  nBody += '</en-note>';

  var ourNote = new Evernote.Types.Note();
  ourNote.title = noteTitle;
  ourNote.content = nBody;
  
  if (resources && resources.length > 0) {
    ourNote.resources = resources;
  }

  if (parentNotebook && parentNotebook.guid) {
    ourNote.notebookGuid = parentNotebook.guid;
  }

  noteStore.createNote(ourNote)
    .then(function(note) {
      console.log(note);
    }).catch(function(err) {
      console.log(err);
    });
}

再额外提醒两个关键点:

  • 确保<en-media>标签的hash属性和资源的bodyHash完全一致,大小写也不能错——你的createResource函数里的哈希计算是对的,保持这个逻辑就行
  • 资源的mime类型要和图片格式匹配,比如PNG图要改成image/png,避免格式不兼容的问题

内容的提问来源于stack exchange,提问作者user2097439

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 00:58:14