我是节点新手。我想要实现的是向用户询问他的名字。当用户输入他的名字时,他的会话就会被创建。在用户登录时间后面保存。下次用户输入他的名字。应该显示他的名字加上他最后一次登录。我的尝试是这个
var express = require('express');
var bodyParser = require('body-parser');
var expressSession = require('express-session');
var cookieParser = require('cookie-parser');
var app = express();
app.use(cookieParser());
app.use(expressSession({secret:'somesecrettokenhere'}));
app.use(bodyParser());
app.all('*', function findLastVisit(req, res, next) {
if (req.session.visited)
req.lastVisit = req.session.visited;
req.session.visited = Date.now();
next();
});
app.get('/', function(req, res){
var html = '<form action="/" method="post">' +
'Your name: <input type="text" name="userName"><br>' +
'<button type="submit">Submit</button>' +
'</form>';
if (req.session.userName) {
html += '<br>Your username from your session is: ' + req.session.userName + '<br> And the last time you visited was ' + req.lastVisit;
}
res.send(html);
});
app.post('/', function(req, res){
req.session.userName = req.body.userName;
res.redirect('/');
});
app.listen(1337);
console.log("server is on 1337 bro");
不幸的是,我的代码始终仅显示当前时间。我想我犯了一个愚蠢的错误。有谁可以指出?
答案 0 :(得分:0)
我会移除您的middelware并添加另一个名为lastVisited
的变量,如下所示
var express = require('express');
var bodyParser = require('body-parser');
var expressSession = require('express-session');
var cookieParser = require('cookie-parser');
var app = express();
app.use(cookieParser());
app.use(expressSession({secret:'somesecrettokenhere'}));
app.use(bodyParser());
app.get('/', function(req, res){
var html = '<form action="/" method="post">' +
'Your name: <input type="text" name="userName"><br>' +
'<button type="submit">Submit</button>' +
'</form>';
if (req.session.userName) {
html += '<br>Your username from your session is: ' + req.session.userName + '<br> And the last time you visited was ' + req.session.lastVisited ; //LOOK here I replaced your variable with lastVisited
}
res.send(html);
});
app.post('/', function(req, res){
req.session.userName = req.body.userName;
req.session.lastVisited = req.session.visited || Date.now(); //LOOK here
req.session.visited = Date.now();
res.redirect('/');
});
app.listen(1337);
console.log("server is on 1337 bro");