使用带有Express.js和Pug.js的Node.js构建动态网站。对于此任务,请选择一个国家并建立一个小册子网站(即具有信息的一页网站),页面上列出的所有事实都可以组成,内容必须为G或PG。该网站将根据运行Node.js的计算机的系统时间而更改。如果用户从上午7点到晚上7点(含)查看页面,则该页面应具有CSS,并且外观基于一天。关于该国的事实应面向天。如果在上午7点至晚上7点之外查看该页面,则事实和CSS主题应更改为面向晚上。页面的大多数外观和信息应根据白天或黑夜而改变。
此外,您的页面必须接受一个称为“小时”的查询参数,该参数将改为使用该时间而不是系统时间。必须可以输入小时作为军事时间(即1是凌晨1点,而13是下午1点)。
'use strict';
const express = require('express'),
app = express();
app.set('view engine', 'pug');
app.set('views', 'views');
app.use(express.static('resources'));
app.get('/', function (req, res) {
let date = new Date();
let time = date.getHours();
if (time >= 7 && time <= 18) {
res.render('day');
}
else {
res.render('night');
}
});
app.get('/hour', function(req, res){
const hour = req.query.hour;
if(hour >=7 && hour <= 19){
res.render('day');
}
else {
res.render('night');
}
});
const server = app.listen(3000, function(){
console.log(`Server started on port ${server.address().port}`);
});
上面是我的代码的副本,其中的pug文件分别命名为“ day”和“ night”。我已经完成了这项任务,但是遇到了一个我似乎无法解决的问题。该页面的基本路径是localhost:3000/
,带有查询参数hour
的基本路径应该是localhost:3000/?hour=(hour)
。我可以使程序正确运行的唯一方法是使用路径localhost:3000/hour?hour=(hour)
。编写此代码的一种好方法是什么,这样我可以使用localhost:3000/?hour=(hour)
的路径来获得预期的结果?
答案 0 :(得分:0)
摆脱/hour
路由,仅获取/
路由中的查询参数。如果未提供该参数,则使用当前时间作为默认时间。
app.get('/', function (req, res) {
let hour = req.query.hour;
if (hour) {
hour = parseInt(hour);
} else {
let date = new Date();
hour = date.getHours();
}
if (hour >= 7 && hour <= 18) {
res.render('day');
}
else {
res.render('night');
}
});