3

我正在使用基于 MVC 模式(模板和 PHP 类)的论坛软件。页面如下所示: domain.com/index.php?page=Test

我想用 node 和 now.js 在一个页面(domain.com/index.php?page=Chat)上设置一个聊天服务器。现在我遇到一个问题:如何告诉服务器端代码聊天服务器必须在 index.php?page=Chat 上工作 显然我不能这样做:

fs.readFile('index.php?page=Chat')

任何想法如何在这样的 URL 上设置节点服务器?谢谢!

4

2 回答 2

3

我会更深入地研究 node.js。由于 node本身就是一个网络服务器,你必须了解一些关于路由和服务器配置的工作原理。基本上,您的(可能的)Apache 服务会监听端口 80 上的任何内容。Apache 查看 URI,并决定在您的应用程序中运行哪个脚本来启动一个 php 进程,该进程运行您的代码并生成要发送给用户的网页。

所以当你看到:

domain.com/chat

对比

domain.com/index.php?page=Chat

那是 Apache 说的,“嘿,你配置我将 '/chat' 读取为 /index.php?page=Chat,所以我将关闭该脚本”。

Node.js 就像 Apache 和 PHP 合二为一。它处理请求并构建页面。因此,当请求进入时,您将让 node.js 和 Apache 互相踩踏。要让两个应用程序都侦听端口 80,您必须使用类似以下内容的用户:

https://github.com/nodejitsu/node-http-proxy

该节点模块将未处理的服务器请求转发到 Apache,这将允许您拥有混合的 nodejs/apache+php 应用程序。

就模板而言,php 和 javascript 模板不能混合在一起,因为它们是建立在完全不同的语言上的。所以,你几乎不走运。Node 有一个非常丰富的模板引擎列表。其中一些可能与您正在使用的任何语法具有几乎相同的语法,因此移植起来很简单。

https://github.com/joyent/node/wiki/modules#wiki-template

我希望这回答了你的问题。正如评论的那样,我仍然会使用 iFrame,将节点放在不同的端口上,并保持两种架构的清洁和分离。或者,使用聊天服务,而不必费心设置一个完整的单独应用程序。除非你想学习,在这种情况下,发疯。:)

于 2012-06-12T13:55:09.283 回答
-1

您可以在端口说 8080 运行节点服务器,并且可以将客户端 js 作为普通 javascript 包含在任何可以工作的视图文件中

于 2013-04-15T15:55:41.277 回答