Best practices of building a website using Node.js
我想知道如何用node.js从头开始开发一个网站。我知道我该怎么做,但我对最佳设计实践感兴趣。
我需要这个理论网站:
在PHP中,构建一个非常小的网站非常简单——我在Apache和MySQL服务器上设置了PHP,然后执行如下操作:
includes/db/ ,其中connect.php用于连接数据库,一个具有常见数据库相关功能的文件等includes/layout/ 包含footer.php、header.php和其他与布局相关的内容includes/users/ 处理用户相关操作
然后,php只允许您构建页面并将这些文件包含在一起以形成一个网站-我可以这样做:
1 2 3 4 5 6 7 8 9 10 11 | <?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及其各种包(connect,express)是如何工作的,我发现你可以非常迅速地开发新的站点。好的。
但是,node.js中当前存在的粗糙边缘,再加上它的快速开发速度和所有涉及的模块,可能会使事情复杂化,使事情变得比您希望的简单、快速和简单。好的。
别挡道,好消息是:好的。
node package manager,npm有很多很好的工具和框架来扩展node.js的基本功能,使其适合创建Web服务器。好的。
最值得注意的是Express框架,它包含运行Web服务器所需的几乎所有内容(包括cookie、会话和路径路由)。另外,Express还支持partials,它负责处理页眉和页脚的内容。好的。
快车是建立在Sencha的连接之上的。cookie和会话实际上是由connect提供的。Express简化了路由和处理视图/部分。所以,如果你不需要所有的铃铛和口哨随快报一起提供,你可以去连接代替。好的。
如果您喜欢为这些部分使用模板,Jade模板引擎可以为您加快速度。尽管乔什3736指出,玉是缓慢和空白显着。这里可以找到一个更完整的概述,其中包括他最喜欢的圆点。(我个人只对基于
您可以使用db mysql模块从node.js连接到mysql,但如果您不需要,因为您正在访问连接到现有系统的数据,我建议您使用更多…'现代的方法,即像大多数node.js项目一样使用nosql数据库。MongoDB通过Mongoose是流行的方式。好的。
或者,如果它只是存储你感兴趣的对象,只需使用redis(无论如何,在某个时刻你可能需要它)。好的。
一旦你的网站完成,你就必须部署它并确保它继续运行。有很多方法可以做到这一点,比如使用内置的集群支持或者使用更具功能性的
结论:好的。
我想知道的是:好的。
问在node.js中构建一个网站的最佳实践是什么,和问在php中构建一个网站的最佳方法是:100个开发人员会给你100个不同的答案。好的。
NPM拥有各种优秀的框架,可以大大简化涉及的许多任务,但所有这些都是基于偏好的,哪一个才是真正的方法。好的。
正如我所说,node.js仍然是一种非常年轻的技术,因此还没有一种框架或附加工具作为"defacto标准"出现;对于您要做的大多数事情,可能有各种各样的替代方法,并且在更新期间使用它们时,期望您的代码会中断,因为node.js本身和大多数模块的开发是FAST踱步。你得跟上。好的。
把它们放在一起:好的。
正如我所说,node.js的主要生产用途是能够使用
- 使用Express和Jade进行设置和部署
- 使用Express、Jade和MongoDB的非常完整的博客示例
- 结合restify(express的扩展)、主干.js和mongoose
同样,前进的道路(以及随后要遵循的示例)在很大程度上取决于您最终的目标和所选择的技术,但幸运的是,对于所有可用的选择,都有足够的资源可用。大多数模块使用有良好文档记录的Github存储库,并将示例与最流行的模块结合在一起(请参阅大多数存储库中似乎存在的
祝你好运!(感谢Josh3736纠正了我的错误。)好的。好啊。