【问题标题】:Generate .ics url like Basecamp in Nodejs在 Nodejs 中生成类似 Basecamp 的 .ics url
【发布时间】:2020-03-27 03:55:05
【问题描述】:

我正在研究 nodeJs(后端)和(Angular) 我想为 google 日历以及 Apple 和 Microsoft 生成一个 .ics 文件 URL 作为可下载文件。 我知道有一个节点模块 ics 并且我正在使用它,但这只会创建一个 .ics 文件,我希望它对每个用户都是唯一的,并且还希望它能够自动删除。 此外,它应该自动与添加的事件同步。

对此有何建议?

【问题讨论】:

  • 使用规范
  • 什么是规范?

标签: node.js angular icalendar


【解决方案1】:

我一直无法找到一种方法来不断更新某人的日程安排,因为这需要不断访问某人的日历。在构建调度站点时,我使用蛮力解决方案解决了您的存储和独特文件问题。

首先,当客户端访问下载端点时,会生成一个唯一的 ics 文件并将其存储为schedule_date_client-name.ics。然后使用res.download将此唯一文件发送给用户,并使用fs.unlink(path_to_file)立即删除。

这是一个实际的例子:

    try {
        res.download(path, function(error){
            if (error) {
                console.log("Error : ", error)
            }
            fs.unlink(path, (error) => {
                // log any error
                if (error) {
                    console.log(error);
                }
            })
        });
    } catch (e) {
        next(e);
    }

我发现的最佳方法是在用户访问 /download url 端点时生成 .ics 文件。使用控制器文件中的res.download 以可下载格式发送文件。以下是有关我用于此解决方案的软件包的更多信息:

节点 .ics:https://www.npmjs.com/package/ical-generator 节点文件:https://nodejs.dev/learn/the-nodejs-fs-module

需要模块:

const ical = require('ical-generator');
const fs = require("fs");

【讨论】:

    猜你喜欢
    • 2010-12-28
    • 1970-01-01
    • 2011-05-14
    • 2014-03-12
    • 2020-12-19
    • 2012-05-06
    • 2021-02-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多