Node.js 在nodejs/express应用程序中使用socket.io时访问响应对象

Node.js 在nodejs/express应用程序中使用socket.io时访问响应对象,node.js,express,socket.io,Node.js,Express,Socket.io,通常,我可以在服务器中使用GET/POST方法从服务器更改客户端的视图,如下所示: app.get('/hello', function(req, res){ res.render('helloView', {}) }); 其中helloView是一些html/jade视图文件 但是当我从客户端收到socket.io消息时,我需要能够调用res.render('helloView',{}) io.on('connection', function(socket){ socket

通常,我可以在服务器中使用GET/POST方法从服务器更改客户端的视图,如下所示:

app.get('/hello', function(req, res){
    res.render('helloView', {})
});
其中
helloView
是一些html/jade视图文件

但是当我从客户端收到
socket.io
消息时,我需要能够调用
res.render('helloView',{})

io.on('connection', function(socket){
    socket.on('showHellow', function(client_data){
        res.render('helloView', {}) // <---- obviously this fails, so how
        //can I call res.render('helloView') from here???
    });
});
io.on('connection',函数(socket){
socket.on('showHellow',函数(客户端数据){

res.render('helloView',{})//这是不可能的。您对web套接字的功能有很大的误解。您在该上下文中没有
res
,因为没有任何响应。您可以编译
helloView
模板并通过套接字发送该模板,但仍然需要您在客户端通过更新使用消息中发送的HTML对自己进行DOM。您最好让客户端将浏览器重定向到/hello以执行正常的HTTP GET请求。谢谢@idbehold,我只是继续使用socket.io发送了一个服务器->客户端确认,然后发送一个客户端->服务器GET消息,这反过来会改变视图。看起来有点麻烦不过,我还是有点犹豫。