Node + now.js + Model-View-Control-Pattern

时间:2012-06-10 23:06:57

标签: php javascript model-view-controller node.js nowjs-sockets

我正在使用基于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上设置节点服务器? 谢谢!

2 个答案:

答案 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它将起作用

相关问题