Как сделать параметр запроса - PullRequest
0 голосов
/ 22 октября 2018

Создание динамического веб-сайта с использованием Node.js с Express.js и Pug.js.Для этого задания выберите страну и создайте веб-сайт брошюры (т. Е. Одностраничный веб-сайт с информацией), все факты, перечисленные на странице, могут быть составлены, а содержание должно быть G или PG.Этот веб-сайт будет меняться в зависимости от системного времени компьютера, на котором запущен Node.js.Если пользователь просматривает страницу с 7:00 до 19:00 (включительно), страница должна иметь CSS и выглядеть примерно в течение дня.Факты об этой стране должны быть ориентированы на день.Если страница просматривается с 7:00 до 19:00, факты и тема CSS должны измениться на ночную.Внешний вид и информация на большинстве страниц должны меняться в зависимости от времени суток.

Кроме того, ваша страница должна принимать параметр запроса с именем «час», который вместо этого будет использовать это время вместо системного времени.Час должен быть в состоянии ввести как военное время (т. Е. 1 - это 1:00, а 13 - 13:00).

'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}`);   
});

Выше приведена копия моего кода с файлами мопса, названными «день» и'ночь'.Я в значительной степени выполнил это задание, но у меня есть одна проблема, которую я не могу понять.Базовый путь для страницы - localhost:3000/, а базовый путь с параметром запроса hour - localhost:3000/?hour=(hour).Единственный способ заставить программу работать правильно, это использовать путь localhost:3000/hour?hour=(hour).Какой хороший способ написать это, чтобы я мог получить ожидаемые результаты, используя путь localhost:3000/?hour=(hour)?

1 Ответ

0 голосов
/ 22 октября 2018

Избавьтесь от маршрута /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');
    }
});
...