使用 Node.js 构建网站的最佳实践

我想知道如何用 Node.js 从头开始开发一个网站。 我知道如何我可以 有可能做到这一点,但我对 最好的的设计实践感兴趣。

我需要这个理论网站:

  1. 做很多 AJAX
  2. 直截了当
  3. 相对较小
  4. 连接到... ... 让我们假设一个 MySQL 服务器

在 PHP 中,构建一个非常小的网站非常简单——我在 Apache 和 MySQL 服务器上设置了 PHP,然后执行以下操作:

  • includes/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 真的很兴奋。我想学习如何从一开始就用正确的方式开发这类东西。

84991 次浏览

从坏消息开始: 由于 Node.js是一个相当年轻的技术,我想你会发现创建一个完整的网站和维护/运行它的过程将与你现在所习惯的非常不同。

Josh3736 补充道: < em > 一旦你弄清楚 Node.js 和它的各种软件包(Connect,Express)是如何工作的,我发现你可以很快地开发新的站点。

目前 Node.js 中存在的粗糙边界,加上其快速的开发速度和所涉及的所有模块,可能会使事情变得复杂,使事情变得不像您希望的那样简单、快速和直接。

除此之外,还有一个好消息:

节点包管理器,NPM有很多很好的工具和框架来扩展 Node.js 的基本功能,这使得它适合创建一个网络服务器。

最值得注意的是 快速架构,它包含了几乎所有你运行网络服务器所需的东西(包括 cookie、会话和路径路由)。此外,Express 支持部分内容,这些内容包括页眉和页脚。

Express 是建立在 Sencha’s Connect之上的。Cookie 和会话实际上是由 Connect 驱动的。Express 可以简化路由并处理视图/部分内容。因此,如果你不需要所有的铃铛和口哨,随着快递你可以去连接而不是。

如果您喜欢为这些部分使用模板,那么 玉模发动机可以为您加快速度。尽管 Josh 3736指出 Jade 的速度很慢,而且有很大的空白。一个更完整的概述可以找到 给你,其中包括他的最爱,没有。(我个人只对基于 socket.io的应用程序使用 Node.js,所以在模板方面,他是一个比我更好的来源)。

你可以使用 Db-mysql模块从 Node.js 连接到 MySQL,但是如果你不需要这个模块,因为你正在访问连接到一个已经存在的系统的数据,我建议你使用一个更“现代”的方法,就是像大多数 Node.js 项目一样使用 NoSQL数据库。通过 猫鼬MongoDB是流行的方式去。

或者,如果它只是存储您感兴趣的对象,那么只需使用 雷迪斯(您可能在某个时候需要它)。

一旦您的网站完成,您将不得不部署它,并确保它继续运行。有很多方法可以做到这一点,比如使用内置的集群支持或使用功能更加友好的 forever npm 模块。更多信息请参见我的这个问题。

结论 :

我想说的是:

询问在 Node.js 中构建网站的最佳实践是什么,与询问在 PHP 中构建网站的最佳方法是什么大致相同: 100个开发人员会给你100个不同的答案。

NPM 拥有许多优秀的框架,它们极大地简化了所涉及的许多任务,但是它们都是基于偏好的,哪一个才是真正的方法。

正如我所说,Node.js 仍然是一个相当年轻的技术,所以还没有任何框架或附加工具作为“事实上的标准”出现; 对于大多数你正在尝试做的事情,可能有各种各样的替代品,并期望你的代码在更新期间使用它们的大部分时候会中断,因为 Node.js 本身和大多数模块的开发都是快节奏的。你得跟上。

把它们放在一起 :

正如我所说的,我对 Node.js 的主要生产使用是能够使用 socket.io,所以我没有任何好的生产示例(而且我即将离开,去度一个值得的假期,我也没有时间把它们放在一起)。不过,也有一些很好的例子:

同样,方法(以及随后要遵循的示例)在很大程度上取决于您的最终目标和所选择的技术,但幸运的是,对于所有可用的选择,都有大量可用的资源。大多数模块使用文档良好的 GitHub 存储库,并将示例与最流行的模块组合在一起(请参阅大多数存储库中的 /examples/目录)。

祝你好运! (感谢 Josh 3736纠正我的错误。)