节点js根据日期提供不同的文件

时间:2016-08-25 23:11:46

标签: node.js express calendar

我正在使用node.js和express来创建一个网站。我使用new Date();来获取当前日期和明天的日期。我有一个HTML文件,每个日期EX:8_25.html。如果它更容易,它也可以在电子表格中。

我怎样才能让它在今天和明天在同一个网站上提供文件(如果可能的话,整个星期都可以完成?)

iframe很好,我很乐意接受这个答案,但我更愿意,如果有更好的方法。另外,我想将文件本身放在私人目录中(而不是nodejs公共文件夹);但这不是必需的。

1 个答案:

答案 0 :(得分:0)

所以听起来你需要的是

  1. 读取这两个文件并获取他们的HTML
  2. 生成包含两页html的新页面的html
  3. 提供生成的页面
  4. 说,你的第一个文件包含

    <html>
        <head>....</head>
        <body><h1>Some header</h1></body>
    </html>
    

    ,第二个包含

    <html>
        <head>....</head>
        <body><h1>Another header</h1></body>
    </html>
    

    现在你说你知道如何获取文件的内容,所以抓住它。您可能只需要获取<body>...</body>内的内容,因此为此创建一个帮助程序。只要您认为您的页面不包含多个实体,就可以使用regexp。

    接下来,生成页面。好吧,你可以连接一些html,如下:

    newBody = "<div class='today-and-tomorrow'><div class='today'>" +
        todayFileBodyContents +
        "</div><div class='tomorrow'>"+
        tomorrowFileBodyContents +
        "</div></div>
    

    最后一步是使用生成的主体提供新页面。这是通过res.send(html)完成的基本操作。

    所以你需要的是像

    app.get('/today-and-tomorrow', function(req, res)
    {
        //# get todayFileBodyContents
        //# get tomorrowFileBodyContents
    
        newBody = "<div class='today-and-tomorrow'><div class='today'>" +
            todayFileBodyContents +
            "</div><div class='tomorrow'>"+
            tomorrowFileBodyContents +
            "</div></div>; // create actual html that you want. You may want to create a separate file that contains all the wrappers and other stuff
    
        res.send(newBody);
    });