我正在使用基于MVC-Pattern(模板和PHP类)的论坛软件。 页面如下所示:domain.com/index.php?page=Test
我想在一个页面(domain.com/index.php?page=Chat)上使用node和now.js设置聊天服务器。 现在我解决了一个问题:如何告诉服务器端代码聊天服务器必须在index.php工作?page = Chat 显然我不能做那样的事情:
fs.readFile('index.php?page=Chat')
如何在这样的URL上设置节点服务器? 谢谢!
答案 0 :(得分:3)
我会更深入地研究node.js.由于节点 本身就是一个网络服务器,您必须先了解一下路由和服务器配置的工作原理。基本上,任何进入端口80的内容都由您的(可能的)Apache服务进行监听。 Apache查看URI,并决定运行应用程序中的哪个脚本启动运行代码的php进程并生成要发送给用户的网页。
所以当你看到:
domain.com/chat
VS
domain.com/index.php?page=Chat
那是阿帕奇说的,“嘿,你让我把'/ 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-templating
我希望这能回答你的问题。我仍然会像评论一样使用iFrame,将节点放在不同的端口上,并保持两个架构的清洁和分离。或者,使用聊天服务,不要费心设置一个完整的单独应用程序。除非你想学习,在这种情况下,要发疯。 :)
答案 1 :(得分:-1)
你可以在8080端口运行节点服务器,并且可以在任何视图文件中包含客户端js作为普通javascript它将起作用