将需要我使用两个不同的pug文件的项目组合在一起,正在使用的项目根据一天中的时间而变化(即night.pug从晚上7:00到早上7:00和day.pug处于活动状态从早上7点到晚上7点)
我要问的是,我将如何渲染这些页面?我知道我将实现新的Date()。getHours();获得系统时间,但我不完全确定我将如何有条件地渲染页面。是否需要两种不同的app.get?
'use strict';
const express = require('express'),
app = express();
app.use(express.static('resources'));
app.set('view engine', 'pug');
app.set('views', './views');
app.get()
const server = app.listen(3000, function () {
console.log(`Started server on port ${server.address().port}`);
});
app.get目前是空的,因为我不知道如何处理这个问题。非常感谢任何帮助。
答案 0 :(得分:1)
我认为会是这样的。没有测试过,但应该帮助你开始。我只是在快速文档页面上调整了代码。
app.get('/', function (req, res) {
// Get the current hour (you might need to do the UTC thing)
const currentHour = (new Date()).getHours();
// between 7am and 7pm on a 24 hour clock
const isDay = currentHour > 7 && currentHour < 19;
// Determine which template to render
if (isDay) {
res.render('day', { title: 'Hey', message: 'Hello there!' });
} else {
res.render('night', { title: 'Hey', message: 'Hello there!' });
}
});
文档:https://expressjs.com/en/guide/using-template-engines.html