如何在Express js中显示每个Evernote笔记的标题

How to show the title of each Evernote note in Express js?

本文关键字:Evernote 笔记 标题 显示 Express js      更新时间:2023-09-26

你知道如何在Express js中显示所有Evernote笔记的标题和内容 https://github.com/evernote/evernote-sdk-js/blob/master/sample/express/routes/index.js https://github.com/evernote/evernote-sdk-js/blob/master/sample/express/views/index.jade 吗?

500 类型错误: C:''Users''lvcpp''Docs''evernote-sdk-js''sample''express''views''index.jade:31 29| li= 会话.notebooks[i].name 30| UL> 31| - for (var i = 0; i <session.notesMeta.length;>

29| li= session.notebooks[i].name
30|
UL> 31|- for (var i = 0; i <<strong>session.notesMeta.length; ++i(
32|li= session.notesMeta.notes[i].title
33|人力资源
34|h2 现状


Express js 网页应用:

.js索引:

exports.index = function(req, res) {
  if(req.session.oauthAccessToken) {
    var token = req.session.oauthAccessToken;
    var client = new Evernote.Client({
      token: token,
      sandbox: config.SANDBOX
    });
    var noteStore = client.getNoteStore();
    noteStore.listNotebooks(function(err, notebooks){
      req.session.notebooks = notebooks;
      res.render('index');
    });
    var notebook=noteStore.getDefaultNotebook(function (err, notebook){
      filter = new Evernote.NoteFilter();
      filter.notebookGuid = notebook.guid;
      resultSpec = new Evernote.NotesMetadataResultSpec();
      resultSpec.includeTitle=true;
      noteStore.findNotesMetadata(filter, 0, 100, resultSpec, function(err, notesMeta) {
        req.session.notes = notes;
        res.render('index');
        });
    });
  } else {
    res.render('index');
  }
};

索引.翡翠

ul
  - for (var i = 0; i < session.notebooks.length; ++i)
    li= session.notebooks[i].name
ul
  - for (var i = 0; i < session.notesMeta.length; ++i)
    li= session.notesMeta.notes[i].title

附言 谢谢,@conch,
但不幸的是,我收到另一个错误,之后 代码的修复:

500 类型错误: C:''Users''lvcpp''Docs''evernote-sdk-js''sample''express''views''index.jade:31 29|li= 会话.笔记本[i].名称 30|UL> 31|- for (var i = 0; i < session.notesMeta.notes.length;++i( 32|li= 会话注释元注释[i].标题 33|HR 34|h2 当前状态 无法 读取未定义的属性"注释">

29| li= 会话.笔记本[i].名称
30| UL
> 31| - for (var i = 0;我<session.notesMeta.notes.length;++i>
( 32| li= 会话.注释元注释[i].title
33| hr
34| h2 当前 地位

我们需要在index.js中定义"notes"属性。

但是如何,或者我们真的需要它来处理吗?

在我的控制台 nodejs 应用程序中,所有事情都可以在没有注释的特殊定义的情况下工作:

function showlistNotes() {
  filter = new Evernote.NoteFilter();
  resultSpec = new Evernote.NotesMetadataResultSpec();
  resultSpec.includeTitle=true;
  noteStore.findNotesMetadata(filter, 0, 100, resultSpec, function(err, notesMeta) {
    if (err) {
      console.error('err',err);
    }
    else {
      console.log("'nFound "+notesMeta.notes.length+" notes in all the notebooks:");
      for (var i in notesMeta.notes) {
          console.log(i+": "+notesMeta.notes[i].title);
      }
      console.log(''nGet the contents of the selected note (see full list of notes, from all your notebooks):'nPlease insert the number from 0 to  ' + notesMeta.notes.length );
      process.openStdin().addListener("data", function(d) {
        var a=d.toString().trim();
        noteStore.getNote(notesMeta.notes[a].guid, true, true, true, true, function(err, note) {
          console.log(err || ENML.PlainTextOfENML(note.content, note.resources)  );
        }); 
      }); 
    }
  });
}
它失败了,

因为你的js文件在noteStore.findNotesMetadata的回调中设置了一个名为notes的会话变量,但你的jade文件需要一个名为notesMeta的会话变量。你的 jade 文件也有一个索引错误(你不应该遍历session.notesMeta,你应该遍历session.notesMeta.notes(。

正确的代码:

索引.js

noteStore.findNotesMetadata(filter, 0, 100, resultSpec, function(err, notesMeta) {
  req.session.notesMeta = notesMeta;
  res.render('index');
});

索引.翡翠

ul
  - for (var i = 0; i < session.notesMeta.notes.length; ++i)
    li= session.notesMeta.notes[i].title