首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Node.js构建网站的最佳实践

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

Stack Overflow用户
提问于 2012-07-03 21:11:51
回答 1查看 84.7K关注 0票数 79

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

我需要这个理论网站来:

  1. 做了很多AJAX
  2. Be非常小的
  3. 连接到...让我们假设一个MySQL服务器

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

  • includes/db/,它具有用于连接到数据库的stuff
  • includes/users/、具有与数据库相关的常用函数的文件,以及具有诸如footer.php、header.php和其他布局相关的connect.php的on
  • includes/layout/,用于处理与用户相关的操作

然后PHP只是让你构建页面,并将这些文件包含在一起形成一个网站-我可以这样做:

代码语言:javascript
复制
<?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中可能有什么相似之处--我正在寻找一种方法来实现这一点,即尽可能地使用简单的、快速的和Node.js。

如果答案不简单,我会喜欢一本书的推荐,我不介意阅读。

我喜欢基于事件的编程,我真的很喜欢JavaScript的能力,我真的对Node.js感到兴奋。我想从一开始就学习如何以正确的方式开发这类东西。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-03 21:50:22

首先是坏消息:由于Node.js是一项相当年轻技术,我想你会发现创建一个完全成熟的网站和维护/操作它的过程将与你目前所习惯的截然不同。

Josh3736补充说:一旦你弄清楚了Node.js和它的各种包(连接,快速)是如何工作的,我发现你可以非常快地开发新的网站。

然而,Node.js目前存在的粗糙边缘,再加上其开发的快速步伐和涉及的所有模块,可能会使事情变得复杂,并使事情变得不像你想的那样简单、快速和直接。

有了这些,这里有个好消息:

Node Package Manager, NPM有很多很好的工具和框架来扩展Node.js的基本功能,使其适合创建and服务器。

最值得注意的是Express Framework,它包含了运行and服务器所需的几乎所有内容(包括cookies、会话和路径路由)。此外,Express还支持partials,它可以处理页眉和页脚包含的内容。

Express是建立在Sencha's Connect之上的。Cookie和会话实际上由Connect提供支持。Express可以简化您的路由并处理视图/部分。因此,如果你不需要Express附带的所有花哨功能,你可以直接使用Connect。

如果您喜欢为这些部分使用模板,Jade Template Engine可以为您加快速度。尽管Josh3736指出Jade速度很慢,而且空格意义重大。更完整的概述可以在here上找到,其中包括他最喜欢的doT。(我个人只在基于socket.io的应用程序中使用Node.js,所以在模板方面,他比我更好)。

您可以使用db-mysql模块从Node.js连接到MySQL,但如果您因为要访问已连接到现有系统的数据而不需要该模块,我建议您使用更多...“现代”方法,即像大多数Node.js项目那样使用NoSQL数据库。通过MongooseMongoDB是一种流行的方式。

或者,如果它只是存储您感兴趣的对象,那么只需使用Redis (无论如何,您都可能会在某些时候需要它)。

一旦你的网站完成,你就必须部署它,并确保它继续运行。有很多方法可以做到这一点,比如使用内置的集群支持,或者使用功能更友好的forever npm模块。See this SO question of mine for more information.

结论

我想说的是:

询问用Node.js构建网站的最佳实践是什么,就像问用PHP语言构建网站的最佳方法是什么一样: 100个开发人员会给你100个不同的答案。

NPM拥有各种优秀的框架,这些框架极大地简化了相关的许多任务,但这都是基于偏好,哪一个是真正的方法。

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

将其整合在一起

正如我已经说过的,我对Node.js的主要生产用途是能够使用socket.io,所以我没有任何好的生产示例(而且由于我即将去度一个应得的假期,我也没有时间去整理)。不过,也有一些很好的例子:

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

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

票数 184
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11311672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档