我有一个用于构建登录系统的 Node.js 应用程序。我的登录系统正常工作,但我必须手动刷新页面才能显示“用户名登录”。它成功隐藏了您需要填写才能登录的登录/注册字段。
这是我的 app.js 代码:
/**
* Application Configuration
*/
app.configure(function(){
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.enable('jsonp callback');
app.set('view engine', 'jade');
app.set('view options', {layout : false});
app.use(express.bodyParser());
app.use(express.cookieParser());
app.use(express.session({
secret : 'sessionsecret'
}));
app.use(express.methodOverride());
app.use(express.static(__dirname + '/public'));
app.use(function(req, res, next){
res.locals.session = req.session;
next();
});
app.use(app.router);
});
这是login.js
我隐藏登录表单的部分。
if(username && password){
$.post('/login', $(this).serialize(), function(response){
if(response.retStatus === 'success'){
$('#loginForm').hide();
$('#signup-btn').hide();
//$(location).attr('href', '/admin');
}else if(response.retStatus === 'failure'){
$('#signup-error-modal').modal('show');
}
});
}
});
最后这是应该自动显示用户名的视图的 JADE/HTML 代码
if(session.user)
div#logoutsection.pull-right
a#logout-btn.btn.btn-info.pull-right.top-bar-form-button(href='/logout') Logout
p#loginprompt.pull-right.login-prompt #{session.user.username}
small logged In
else
a#signup-btn.btn.pull-right.top-bar-form-button(href='#signup-modal', data-toggle="modal") Sign Up
form.pull-right.form-horizontal.top-bar-form(method="post", id="loginForm")
input.input-small.top-bar-form-textbox(id="username", type="text", name="User", placeholder="Username")
input.input-small.top-bar-form-textbox(id="password", type="password", name="Password", placeholder="Password")
button.btn.btn-primary.top-bar-form-button(type="submit", value="Sign In") Sign In
如果您想查看更多代码,请告诉我,我想我这里都有。但我真的不明白为什么我必须手动刷新它才能显示用户名。欢迎任何想法?