我不知道怎么一会去从头开始开发一个网站,Node.js的 我明白,我怎么可能做到这一点,但我感兴趣的是最好的设计实践。
我需要这个理论的网站:
- 做了很多的AJAX
- 很简单
- 相对较小
- 连接到......比方说,一个MySQL服务器
在PHP中,建立一个非常小的网站是非常简单的 - 我设置PHP在Apache和MySQL服务器,然后像做:
-
includes/db/
其具有用于连接到分贝,与公共DB相关功能等一个connect.php文件 -
includes/layout/
其具有这样的东西footer.php,header.php文件,和其他布局相关的东西 -
includes/users/
处理用户相关的动作
然后,PHP只是让你建立的网页,然后将这些文件在一起,形成一个网站 - 我可以去是这样的:
<?php
require_once('inclues/users/user_session.php');
require_once('inclues/db/connect.php');
require_once('inclues/design/header.php')
?>
// Other php or html or related content relating to the page
<?php
require_once('inclues/.../footer.php');
?>
我想知道什么可能是Node.js的相似-我正在寻找一种方式来做到这一点是简单 , 快速 , 简单越好。
如果答案并不简单,我喜欢一本书的建议,我不介意的阅读。
我喜欢基于事件的编程,我真的很喜欢JavaScript的能力,我真的很兴奋Node.js的 我想学习如何开发这种东西,它从一开始就以正确的方式。
首先是坏消息:由于Node.js的是一个年轻漂亮的技术,我想你会发现,创造一个完全成熟的网站和维护/运营它会比你当前使用的非常不同的理线。
Josh3736补充说: 一旦你弄清楚的Node.js和它的各种包(连接,快递)是如何工作的,我发现,你可以很快速地开发新的网站。
粗糙的边缘,目前存在的Node.js,其发展速度之快,涉及虽然可以复杂的事情,使事情不太简单,快速和简单的比你想要的所有模块相结合。
有了这样的出路,这里的好消息:
该节点包管理器,NPM有很多很好的工具和框架,扩大Node.js的裸露的骨头的功能,使其适合于创建一个Web服务器。
最值得注意的是将是快递框架包含了几乎所有你需要运行一个Web服务器(包括饼干,会话和路径路由)的一切。 此外Express支持的谐音,这需要你的页眉和页脚包括的照顾。
快递是建立在之上煎茶的连接 。 cookie和session实际上是由连接供电。 快递就是简化了您的路由和处理的意见/谐音。 所以,如果你不需要来与快递所有的花里胡哨,你可以只是去连接代替。
如果你喜欢用的模板,这些谐音,将玉模板引擎可以加快速度为您服务。 虽然Josh3736指出,玉是缓慢和空格显著。 一个更完整的概述,可以发现在这里 ,其中包括他最喜欢的, 点 。 (我个人使用的Node.js的socket.io
仅基于应用程序,所以他比我更好的来源,当涉及到模板)。
您可以使用Node.js的从连接到MySQL 数据库MySQL的模块,但如果你不需要因为你所访问连接到一个已经存在的系统中的数据,我建议使用更多...“现代“的做法,这是使用NoSQL的 ,因为大多数的Node.js项目似乎做数据库。 MongoDB中通过猫鼬是流行的路要走。
或者,如果它只是保存你感兴趣的对象,只是去Redis的 ,而不是(这你可能会在某个时候反正需要)。
一旦你的网站是完整的,你就必须部署并确保它保持运行。 有很多方法可以做到这一点,就像使用内置的集群支持或使用功能更加友好forever
NPM模块。 见我的这太问题的更多信息。
结论 :
我试图让这个是:
问什么构建在Node.js的一个网站,最好的做法是,大约是一样问什么是最好的方式来建立一个PHP的网站是:100个开发商会给你100个不同的答案。
NPM是幸运的一个品种,极大地简化了不少参与任务的优秀的框架,但是这一切都基于偏好哪一个是去真正的方式。
正如我已经说过,Node.js的仍然是一个年轻漂亮的技术,所以没有框架或其他工具的已经成为“事实标准”之中; 对于大多数事情,你现在要做的有可能是各种替代方案,并期待您的代码更新期间使用大部分时候打破,因为Node.js的本身,以及所有模块的发展是快节奏。 你必须跟上。
全部放在一起 :
正如我已经说过,我的主要生产使用了Node.js的是能够使用socket.io
,所以我没有任何存在的良好的生产实例(正如我要离开一个当之无愧的假期我没有把一个或者一起)的时间。 有一些很好的例子,但:
- 安装和部署使用Express和玉
- 使用快递,翡翠和MongoDB一个非常完整的博客例子
- 合并的RESTify(快速的扩展),Backbone.js的猫鼬和
此外,要走的路(并随后效仿)在你的最终目标和所选择的技术在很大程度上取决于,但幸运的是有丰富的资源可用于所有可用的选择。 最模块使用有据可查的GitHub存储库和包括在与最流行的模块组合的例子(参见/examples/
DIR,这似乎是存在于大多数储存库)。
祝好运! (多亏Josh3736用于纠正我的错误。)