【发布时间】:2013-01-28 22:32:42
【问题描述】:
我使用nodejs 开发我的第一个项目。我使用express 3 作为框架,使用socket.io 进行客户端服务器通信。目前我正在尝试创建一个注册表单。它工作得很好,但我不确定如何正确使用 socket.io 和 express。
我检查邮箱和密码是否有效,如果无效,我想向客户端推送一个json对象。
我使用这个应用路由:
app.post('/user', function (req, res) {
var user = new User(req.body.user),
errors;
function userSaveFailed() {
res.render('index');
}
errors = user.validation(req.body.user.confirm);
user.save(errors, function (err) {
if (err) {
// Here I would like to send the Object to the client.
io.sockets.on('connection', function (socket) {
socket.emit('registration', {
errors : errors
});
});
return userSaveFailed();
}
res.render('user/new.jade');
});
});
好吧,客户端获得了 json 对象,但如果另一个客户端连接到'/',他也获得了该对象。我想我使用了socket.io 错误。在应用程序路由中使用.emit() 的常用方法是什么?此测试是否需要对socket.io 和express 使用全局授权?
【问题讨论】:
-
为什么要使用 socket.io 从帖子中发回错误。在这种情况下,我只会通过回复发送错误。
-
你的意思是像本地人吗?
res.render('index', {locals: {errors : errors}});?我用它来列出errors和jade,但是我怎样才能将json 对象传递给javascript 客户端函数呢?或者回复帖子的常用方式是什么?
标签: node.js express socket.io emit