有没有办法在node.jssocket
的 post 方法中使用socket.io和express发射到电流,而不必经过?io.sockets.on('connection')
这是我的问题。我正在制作一个迷你授权系统。当用户从表单提交时,它通过'/login'
而不是使用onclick
发射来发布数据。如果用户的用户名或密码无效,它应该发回一条消息,通知它失败。我宁愿不使用回调或写入,因为我使用的是Jade模板。你可以在这里看到我的源代码。
示例: 服务器端
var LoggIn = require('./lib/login.js'); // <-- Middle-ware
app.post('/login', function (req, res){
LoggIn.authenticate(req.body.user, req.body.password, function(user, msg) {
if (user) {
req.session.user = user;
res.redirect('/');
} else {
res.render('login');
//res.emit('loginFail', 'You have entered an invalid user / password!<br>Try Again.); // <-- wishing for something like this
console.log('Login Failed! : ' + msg);
}
});
});
示例 客户端
JS
var status = document.getElementById('status');
socket.on('loginFail', function(msg) {
status.innerHTML = msg;
});
翡翠形态
#status
form#loginForm(method='POST', action='/login')
input(name='user', placeholder='User Name')
br
input(name='password', placeholder='Password', type='password')
br
input(value='Sign In', type='submit')