使用Node.js构build网站的最佳实践
我想知道如何用Node.js从零开始开发一个网站。 我明白我该怎么做,但我对最好的devise实践感兴趣。
我需要这个理论网站来:
- 做了很多的AJAX
- 非常简单
- 比较小
- 连接到…让我们说一个MySQL服务器
在PHP中,构build一个非常小的网站非常简单 – 我在Apache和MySQL服务器上设置PHP,然后执行如下操作:
-
includes/db/
其中有connect.php连接到数据库,具有共同的数据库相关的function的文件等等 -
includes/layout/
其中有像footer.php,header.php和其他布局相关的东西 -
includes/users/
处理用户相关的操作
然后PHP只是让你build立网页,并将这些文件包括在一起形成一个网站 – 我可以像这样:
<?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 – 我正在寻找一种方法来完成这是尽可能简单 , 快速和直接 。
如果答案不简单,我会喜欢一本书的build议,我不介意阅读。
我喜欢基于事件的编程,我真的很喜欢JavaScript的能力,我对Node.js感到非常兴奋。 我想学习如何从一开始就以正确的方式开发这种东西。
从坏消息开始:由于Node.js是一个相当年轻的技术,我认为你会发现创build一个完整的网站和维护/操作它的过程将会和你现在习惯的非常不同。
Josh3736补充说: 一旦你弄清楚Node.js及其各种包(Connect,Express)是如何工作的,我发现你可以很快开发新的网站。
Node.js中存在的粗糙边缘,加上其快速的开发速度和所涉及的所有模块,可能会使事情变得复杂,使事情变得简单,快速和简单。
有了这个,这里有个好消息:
节点包pipe理器NPM有很多很好的工具和框架来扩展Node.js的裸机function,因此适合创build一个web服务器。
最值得注意的是Express框架 ,其中包含几乎所有你需要运行一个networking服务器(包括cookies,会议和path路由)。 另外Express支持部分,照顾您的页眉和页脚包括。
Express是build立在Sencha的Connect之上的。 Cookie和会话实际上由Connect提供支持。 快递是简化您的路由和处理意见/部分。 所以,如果你不需要所有Express和Express来的话,你可以直接使用Connect。
如果您喜欢使用这些部分的模板 , Jade模板引擎可以为您加快速度。 虽然Josh3736指出,玉慢,空白显着。 可以在这里find更完整的概述,其中包括他最喜欢的doT 。 (我个人只使用基于socket.io
的Node.js应用程序,所以在模板方面他比我更好)。
您可以使用db-mysql模块从Node.js连接到MySQL,但如果您不需要,因为您正在访问连接到已经存在的系统的数据,我build议使用更多……“现代'的方法,就是像大多数Node.js项目似的那样使用NoSQL数据库。 通过Mongoose的 MongoDB是最stream行的方式。
或者,如果只是存储你感兴趣的对象,那就去Redis吧 (无论如何你可能会需要这个)。
一旦你的网站完成,你将不得不部署它,并确保它保持运行。 有很多方法可以做到这一点,比如使用内置的集群支持,或者使用更加function友好的forever
npm模块。 看到我的这个问题,我的更多信息。
结论 :
我试图得到的是这样的:
询问在Node.js中构build网站的最佳做法与问在PHP中构build网站的最佳方式大致相同:100位开发人员会给你100个不同的答案。
NPM拥有各种优秀的框架,大大简化了很多涉及的任务,但都是基于偏好哪一个才是真正的走向。
正如我所说,Node.js仍然是一个相当年轻的技术,所以没有任何框架或附加工具已经成为“事实标准”。 对于大多数你正在尝试做的事情,可能有各种各样的select,并且期望你的代码在更新期间使用大部分代码时会中断,因为Node.js本身和大多数模块的开发是快节奏的。 你必须跟上。
把它放在一起 :
正如我所说,我的Node.js的主要生产用途是能够使用socket.io
,所以我没有任何好的生产实例(因为我即将离开一个当之无愧的假期我没有时间把它们放在一起)。 虽然有一些很好的例子:
- 使用Express和Jade进行安装和部署
- 一个非常完整的博客使用Express,Jade和MongoDB的例子
- 结合Restify(Express的扩展),Backbone.js和Mongoose
再次,走的路(以及后面的例子)很大程度上取决于您的最终目标和所select的技术,但幸运的是,有大量资源可用于所有可用的select。 大多数模块使用良好的文档GitHub存储库,包括与最stream行的模块相结合的例子(请参阅似乎在大多数存储库中存在的/examples/
dir)。
祝你好运! (感谢Josh3736纠正我的错误。)