【发布时间】:2013-10-10 16:38:51
【问题描述】:
我正在使用Node.js 和 express 来制作一个网络聊天应用程序。我有一个关于路由的问题。
我的路线是:
app.get("/", function( req, res ) {
res.sendfile( __dirname + "/index.html" );
});
据我所知,这意味着所有客户都应该去http://www.example.com/index.html 页面访问聊天。 (也许,不确定)
是否可以有这样的模式网址:
app.get("/*", function( req, res ) {
res.sendfile( __dirname + "/*" );
});
这样任何用户都可以访问任何 URL 上的聊天
简而言之: 类似于 facebook 聊天。可在所有页面中访问。
提前致谢
【问题讨论】:
-
例如:
app.use(express.static(__dirname));。但是,我认为您误解了 Facebook 的聊天功能。您需要研究像Ajax 和WebSockets 这样的客户端通信。而且,可以从您选择为其实现它们的任何页面使用它们。 -
我正在使用 socket.io,但只是我在路由它时遇到了问题。我的聊天应用程序几乎完成了。但它只能在 /index.html 中访问。因为我的路线。
-
那是因为你没有路由它。 Socket.IO 创建额外的后台/异步连接到服务器,它独立于任何 Express 路由(通过
socket.on()和socket.emit())管理。每个打算使用 Socket.IO 的“page”都需要包含socket.io.js并调用io.connect()。 -
你问了 2 个不同的问题,我认为没有完全意识到这一点 -- 1) “如何创建通配符路由?” 2) “如何建立每个页面的实时通信?”下面的答案将对第一个有所帮助。但是,它不会直接建立第二个。它们将是整个应用程序的独立部分。
标签: javascript node.js routes