首页 > 解决方案 > 使用NodeJS将事件从MongoDB传递到fullcalender不起作用

问题描述

我正在尝试学习如何使用 NodeJS 进行编码,我认为开始一个项目将是获得实践经验的最佳方式。但是,我在这里遇到了一个特定问题,该问题没有得到任何已经存在的 StackOverflow 问题的回答(我已经尝试了所有这些问题,但没有设法解决问题)。

我的目标是创建一个基本的(基于 API 的)待办事项列表应用程序,让用户输入他们的任务,然后将这些任务输入到自定义议程/时间表中。我已经能够使第一部分工作,用户可以在 index.html 主页面上输入他们的任务(带有相应的名称和日期),然后将其存储到 Mongo 数据库中。对于日历部分,我使用的是 fullcalender.io,并且我的网页上已经有了日历。问题是我一直坚持从 MongoDB 中获取任务并将它们作为事件列在日历中。这是我到目前为止的代码:

日历.js:

function draw() {
  var calendarEl = document.getElementById("calendar");

  let data = axios.get("/api/v1/tasks");

  var calendar = new FullCalendar.Calendar(calendarEl, {
    initialView: "dayGridMonth",
    initialDate: "2021-07-07",
    headerToolbar: {
      left: "prev,next today",
      center: "title",
      right: "dayGridMonth,timeGridWeek,timeGridDay",
    },
    events: data,
  });

  calendar.render();
}

draw();

这是我的任务架构:

const TaskSchema = new mongoose.Schema({
  name: {
    type: String,
    required: [true, "A task must have a name."],
    trim: true,
    maxlength: [200, "A task cannot be more than 200 characters."],
  },
  completed: {
    type: Boolean,
    default: false,
  },
  date: {
    type: Date,
    required: [false, "A task must have a date."],
  },
});

这是任务在数据库中的样子 这是任务在数据库中的样子

这段代码几乎直接来自文档。唯一的变化是以前的事件是手动输入的数据数组,以 JSON 格式显示测试事件。这意味着我必须以 JSON 格式从 MongoDB 中获取数据并推送到“事件:数据”行。

在多次阅读文档(https://fullcalendar.io/docs/getting-started)之后,我已经尝试了我目前所掌握的所有知识,但我无法让它工作,我很喜欢完成这个项目。此外,chrome 控制台中没有可见的错误。如果有人能让我走上正确的轨道,将不胜感激!如果需要更多代码,请随时告诉我,我会尽快提供。

提前感谢您抽出宝贵时间!

布拉姆

标签: node.jsmongodbfullcalendar

解决方案


推荐阅读