jam*_*ley 13 javascript node.js
所以我对Node.js派对来说已经很晚了.主要是因为没有人邀请我...... 谢谢.那就是说,我开始研究它了.我来自ASP经典背景,所以有一些我还没有理解的东西.
如果有人可以指出我正确的方向,那将是伟大的.提前致谢.
所以,我正在以标准方式设置服务器.
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');
Run Code Online (Sandbox Code Playgroud)
这给了我一个很好的页面http://127.0.0.1:1337/.可爱.
我正在建设的网站位于http://newsite.dev/.是不是可以(不要笑)将节点服务器设置为从我站点的子文件夹运行,比如说http://newsite.dev/api/?
那么,来自客户端脚本的任何查询都可以发送给/api/而不是http://127.0.0.1:1337/.
编辑:
使事情更清楚.我目前正在运行一个自定义PHP框架http://newsite.dev/,但希望放弃这个长期.同时,需要并行运行它们.
编辑 再次,澄清一下,我正在运行我的OS X上的所有内容,所以apache(MAMP)安装.
您要求创建一个虚拟目录,是的,您可以使用PHP设置Node.js,但您必须做一些阅读.
虚拟目录是位于www.yourwebsite/myotherwebsite等文件夹中的网站
以下是如何在Apache中进行设置.
http://httpd.apache.org/docs/current/vhosts/examples.html
以下是如何在IIS中进行设置.
http://technet.microsoft.com/en-us/library/cc771804(v=ws.10).aspx
然后,您需要将Node.js与Apache或IIS挂钩.这里有更多说明.
Linux:如何使用node.js和express实现虚拟目录?
Windows:http://www.hanselman.com/blog/InstallingAndRunningNodejsApplicationsWithinIISOnWindowsAreYouMad.aspx
您有很多选项,但它们都不允许您在与Apache + PHP相同的服务器上使用端口80作为Node应用程序而不进行代理.
您最好的两个选择如下:
1)设置一个新的子域 - 为node.newsite.dev创建一个新的DNS条目,并在另一台服务器上将该子域指向一个完全不同的IP(但从技术上讲,你可以在同一台服务器上设置两个IP,看到这里),然后节点可以在其独立服务器上的端口80上运行
2)让Apache在/path/to/apache/publicdir/newsite.dev上的端口80上运行,并在/path/to/node/application/newsite.dev上的端口1337上运行节点,然后你可以访问你的apache文件在http://newsite.dev,您的节点应用程序在http://newsite.dev:1337
无论您做什么,都不要将您的节点应用程序放在Apache知道的子目录中,除非您想公开提供这些.js文件.
编辑回应您的编辑:
如果您的目标是专门转移到Node并最终关闭Apache + PHP,那么您最好的选择是使用子域.缺点是你必须在任何地方使用完全合格的链接.有利的一面是,当你觉得够你的应用是在节点中,你可以做一个查找/替换(#//(www\.)?newsite.dev#, '//apache.newsite.dev')和(#//node.newsite.dev#, '//newsite.dev'),然后当你完全关闭的Apache,仅仅将其关闭.