【问题标题】:Storing sessions of user visits on a single page在单个页面上存储用户访问的会话
【发布时间】:2020-03-23 20:17:28
【问题描述】:

尝试:创建一个使用会话存储时间的单页 Web 应用程序 客户端上次访问的网页。如果这是第一次访问,则显示这是您的第一次访问! 否则,打印您上次访问此页面的时间是……。点应替换为 用户上次访问此页面的日期和时间。

它似乎根本没有运行,我不知道为什么?

到目前为止的代码:

var express = require('express'),
    handlebars = require('express-handlebars').create({defaultLayout: 'main'}),
    cookieParser = require('cookie-parser'),
    sessions = require('express-session');

var app = express();

app.use(sessions({
    secret: 'secretString',
    resave: true,
    saveUninitialized: false,
    cookie: { maxAge: 3600000 },
}));

app.use(cookieParser());
app.engine('handlebars', handlebars.engine);
app.set('view engine', 'handlebars');

app.set('port', process.env.PORT || 3000);

let date_ob = new Date(seconds);
let date = date_ob.getDate();
let month = date_ob.getMonth() + 1;
let year = date_ob.getFullYear();
let hours = date_ob.getHours();
let minutes = date_ob.getMinutes();
var visited = year + "-" + month + "-" + date + " " + hours + ":" + minutes;
// prints date & time in YYYY-MM-DD format
console.log(year + "-" + month + "-" + date);

app.get('/', function (req, res) {
    res.sessions.Assignment3Cookies = visited;
    res.send(["The last time you visited this page was" + " " + req.sessions.Assignment3Cookies]);
    res.render('main');
});

app.listen(app.get('port'), function(){
    console.log('Express started on http://localhost:' + app.get('port') + '; press Ctrl-C to terminate');
});

【问题讨论】:

  • 嘿,欢迎来到 Stack Overflow - 从这篇文章的内容很难看出你的问题是什么。如果您想更好地回答您的问题,请查看这些指南:stackoverflow.com/help/how-to-ask
  • 嘿,欢迎来到 Stack Overflow - 从这篇文章的内容很难看出你的问题是什么。如果您想更好地回答您的问题,请查看这些指南:stackoverflow.com/help/how-to-ask

标签: node.js express


【解决方案1】:

试试这个:

app.get('/', function (req, res) {
    if (req.session.Assignment3Cookies) {
        // either send or render here YOU CANNOT HAVE BOTH
        res.send(["The last time you visited this page was" + " " + req.sessions.Assignment3Cookies]);
    } else {
        req.session.Assignment3Cookie = visited;
        res.send(["The last time you visited this page was" + " " + req.sessions.Assignment3Cookies]);
    }
});

如果您想使用res.render(),请查看这篇帖子here,您可以将变量从javascript 传递给您的template

一如既往地享受编码乐趣。

【讨论】:

    猜你喜欢
    • 2015-01-22
    • 1970-01-01
    • 2020-02-17
    • 1970-01-01
    • 2019-01-31
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多