异步将函数提取到另一个node.js文件中

时间:2019-05-03 16:39:31

标签: javascript node.js

我正在尝试从Google日历中获取事件。我在js文件(googlecal.js)中有执行此操作的代码,我已发布列出事件的函数。现在,我想编写一个新的js文件,并从googlecal.js文件中获取这些事件的列表。 对于JS来说还算是新手,对此会感到高兴。

function listEvents(auth) {
  const calendar = google.calendar({version: 'v3', auth});
  calendar.events.list({
    calendarId: 'primary',
    timeMin: (new Date()).toISOString(),
    maxResults: 10,
    singleEvents: true,
    orderBy: 'startTime',
  }, (err, res) => {
    if (err) return console.log('The API returned an error: ' + err);
    const eve = res.data.items;
    if (eve.length) {
      //console.log('Upcoming 10 events:');
      eve.map((event, i) => {
        const start = event.start.dateTime || event.start.date;
        //console.log(`${start} - ${event.summary}`);

        var attendee = event.attendees;

      });
    } else {
      console.log('No upcoming events found.');
    }
  });
}

我尝试使用module.exports或导出此功能并导入新文件。但是我不确定如何将其导出并导入其他js文件,这正是我面临的问题。

2 个答案:

答案 0 :(得分:0)

如果您只想导出此功能,则可以通过module.exports = listEvents将此功能导出为顶级/默认功能,并将其用作const listEvents = require('./googlecal')(此路径表示导入器位于相同级别)。

另一种流行的约定是导出为对象,因此您有空间扩展模块的导出功能:

module.exports = { 
  listEvents,
  // future stuff
}

并通过利用解构来使用它:const { listEvents } = require('./googlecal')

答案 1 :(得分:0)

如果您的环境支持ES6模块语法,则可以使用importexport,否则请使用requiremodule.exports

如果您要使用module.exports,则只需添加module.exports = { listEvents }并使用const { listEvents } = require('./path/to/your/file')导入

您可以使用export阅读此内容:

How to use import/export