如何使用node.js发布页面

Masfenix

我才刚刚开始学习node.js。在过去的两天里,我一直在研究一个接受用户输入并发布ICS文件的项目。我有所有的工作。现在考虑何时必须显示此数据。我得到一个router.get看看我是否在/cal页面上..

router.get('/cal', function(req, res, next) 
    {

        var db = req.db;
        var ical = new icalendar.iCalendar();
        db.find({
            evauthor: 'mykey'
        }, function(err, docs) {
            docs.forEach(function(obj) {
                 var event2 = ical.addComponent('VEVENT');
                 event2.setSummary(obj.evics.evtitle);
                 event2.setDate(new Date(obj.evics.evdatestart), new Date(obj.evics.evdateend));
                 event2.setLocation(obj.evics.evlocation)
                 //console.log(ical.toString());
            });
        });

        res.send(ical.toString());
        // res.render('index', {
        //  title: 'Cal View'
        // })
    })

因此,当/cal被请求时,它将遍历我的数据库并创建ICS日历ical如果我console.log(ical.toString) 在循环中执行此操作,则会按照协议为我提供格式正确的日历。

但是,我想以此结束响应。最后,我res.send只是看看页面上发布了什么。这就是被发表的东西

BEGIN:VCALENDAR VERSION:2.0 
PRODID:calendar//EN 
END:VCALENDAR

现在的原因很明显它是node.js的本质。在回调函数完成将每个人添加VEVENT到日历对象之前,响应已发送到浏览器

我有两个相关的问题:

1)“等待”直到回调完成的正确方法是什么?

2)如何使用res.ics动态链接发送ical.toString()内容。我需要为此创建一个新视图吗?

编辑:我想为2我必须像这样设置HTTP标头

//set correct content-type-header
header('Content-type: text/calendar; charset=utf-8');
header('Content-Disposition: inline; filename=calendar.ics');

但是在使用视图时我该怎么做。

蒂姆·沃尔拉

send一旦获得必要的数据,仅需响应!您不需要endsend直接在路线中,但也可以在嵌套回调中进行操作:

router.get('/cal', function(req, res, next) {
    var db = req.db;
    var ical = new icalendar.iCalendar();

    db.find({
        evauthor: 'mykey'
    }, function(err, docs) {
        docs.forEach(function(obj) {
            var event2 = ical.addComponent('VEVENT');
            event2.setSummary(obj.evics.evtitle);
            event2.setDate(new Date(obj.evics.evdatestart), new Date(obj.evics.evdateend));
            event2.setLocation(obj.evics.evlocation)
        });

        res.type('ics');
        res.send(ical.toString());
    });
});

我还包括使用发送适当Content-Type的信息res.type

另外:不要忘记添加适当的错误处理。例如,res.sendStatus(500)如果在检索文档时发生错误,则可以使用

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Node.js标记降价?

来自分类Dev

SilverStripe 3.1-从前端创建和发布页面

来自分类Dev

如何使用Node.js声明

来自分类Dev

sharepoint 2013更改CSOM中的现有发布页面页面布局

来自分类Dev

如何使用Node JS发送多个响应

来自分类Dev

Django-CMS 3.0.3发布页面会复制插件django-cms-saq中的数据

来自分类Dev

如何使用Node.js访问DOM?

来自分类Dev

如何使用PnP设置引擎在SharePoint Online中设置发布页面?

来自分类Dev

如何使用Node.js观看URL?

来自分类Dev

如何使用Node.js抓取页面

来自分类Dev

Node.js-如何使用Sequelize事务

来自分类Dev

已发布页面中的“禁止在任何地方使用此项目”。

来自分类Dev

如何使用Node JS Express响应xml?

来自分类Dev

如何使用Router在Node.js中呈现页面

来自分类Dev

在获得业务和发布页面权限的批准后,Facebook要求“完全验证”

来自分类Dev

SilverStripe 3.1-从前端创建和发布页面

来自分类Dev

Piranha CMS UI菜单在发布页面上返回空白

来自分类Dev

发布页面后丢失页面的一部分

来自分类Dev

为什么在使用jquery Ajax时发布页面?

来自分类Dev

GitHub图像出现在ReadMe.md中,而不出现在已发布页面中

来自分类Dev

无法使用JS发布到Facebook页面

来自分类Dev

无法更新SharePoint发布页面图像

来自分类Dev

Silverstripe将来发布页面

来自分类Dev

如何使用Node.js抓取页面

来自分类Dev

Facebook页面发布时的Node.js事件

来自分类Dev

写在页面编辑框中的内容未显示在Wordpress的已发布页面中

来自分类Dev

如何在rails中安排和触发发布页面之间的延迟?

来自分类Dev

有没有办法通过在 wagtail 中执行 python 脚本来创建和发布页面?

来自分类Dev

如何在 SilverStripe 4 中通过 Model Admin 发布页面?

Related 相关文章

  1. 1

    如何使用Node.js标记降价?

  2. 2

    SilverStripe 3.1-从前端创建和发布页面

  3. 3

    如何使用Node.js声明

  4. 4

    sharepoint 2013更改CSOM中的现有发布页面页面布局

  5. 5

    如何使用Node JS发送多个响应

  6. 6

    Django-CMS 3.0.3发布页面会复制插件django-cms-saq中的数据

  7. 7

    如何使用Node.js访问DOM?

  8. 8

    如何使用PnP设置引擎在SharePoint Online中设置发布页面?

  9. 9

    如何使用Node.js观看URL?

  10. 10

    如何使用Node.js抓取页面

  11. 11

    Node.js-如何使用Sequelize事务

  12. 12

    已发布页面中的“禁止在任何地方使用此项目”。

  13. 13

    如何使用Node JS Express响应xml?

  14. 14

    如何使用Router在Node.js中呈现页面

  15. 15

    在获得业务和发布页面权限的批准后,Facebook要求“完全验证”

  16. 16

    SilverStripe 3.1-从前端创建和发布页面

  17. 17

    Piranha CMS UI菜单在发布页面上返回空白

  18. 18

    发布页面后丢失页面的一部分

  19. 19

    为什么在使用jquery Ajax时发布页面?

  20. 20

    GitHub图像出现在ReadMe.md中,而不出现在已发布页面中

  21. 21

    无法使用JS发布到Facebook页面

  22. 22

    无法更新SharePoint发布页面图像

  23. 23

    Silverstripe将来发布页面

  24. 24

    如何使用Node.js抓取页面

  25. 25

    Facebook页面发布时的Node.js事件

  26. 26

    写在页面编辑框中的内容未显示在Wordpress的已发布页面中

  27. 27

    如何在rails中安排和触发发布页面之间的延迟?

  28. 28

    有没有办法通过在 wagtail 中执行 python 脚本来创建和发布页面?

  29. 29

    如何在 SilverStripe 4 中通过 Model Admin 发布页面?

热门标签

归档