关于javascript:使用Node.js构建网站的最佳实践

Best practices of building a website using Node.js

我想知道如何用node.js从头开始开发一个网站。我知道我该怎么做,但我对最佳设计实践感兴趣。

我需要这个理论网站:

  • 做很多Ajax
  • 非常直截了当
  • 相对较小
  • 连接到……比如说mysql服务器
  • 在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指出,玉是缓慢和空白显着。这里可以找到一个更完整的概述,其中包括他最喜欢的圆点。(我个人只对基于socket.io的应用程序使用node.js,所以在模板化方面,他比我的源代码更好)。好的。

    您可以使用db mysql模块从node.js连接到mysql,但如果您不需要,因为您正在访问连接到现有系统的数据,我建议您使用更多…'现代的方法,即像大多数node.js项目一样使用nosql数据库。MongoDB通过Mongoose是流行的方式。好的。

    或者,如果它只是存储你感兴趣的对象,只需使用redis(无论如何,在某个时刻你可能需要它)。好的。

    一旦你的网站完成,你就必须部署它并确保它继续运行。有很多方法可以做到这一点,比如使用内置的集群支持或者使用更具功能性的foreverNPM模块。更多信息,请参阅我的这个问题。好的。

    结论:好的。

    我想知道的是:好的。

    问在node.js中构建一个网站的最佳实践是什么,和问在php中构建一个网站的最佳方法是:100个开发人员会给你100个不同的答案。好的。

    NPM拥有各种优秀的框架,可以大大简化涉及的许多任务,但所有这些都是基于偏好的,哪一个才是真正的方法。好的。

    正如我所说,node.js仍然是一种非常年轻的技术,因此还没有一种框架或附加工具作为"defacto标准"出现;对于您要做的大多数事情,可能有各种各样的替代方法,并且在更新期间使用它们时,期望您的代码会中断,因为node.js本身和大多数模块的开发是FAST踱步。你得跟上。好的。

    把它们放在一起:好的。

    正如我所说,node.js的主要生产用途是能够使用socket.io,因此我没有任何好的生产示例(而且由于我即将休假,因此我也没有时间将它们组合在一起)。但也有一些很好的例子:好的。

    • 使用Express和Jade进行设置和部署
    • 使用Express、Jade和MongoDB的非常完整的博客示例
    • 结合restify(express的扩展)、主干.js和mongoose

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

    祝你好运!(感谢Josh3736纠正了我的错误。)好的。好啊。