当前位置: 首页 > 面试题库 >

使用Node.js建立网站的最佳做法

昌学
2023-03-14
问题内容

我想知道如何使用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感到非常兴奋。我想学习如何从一开始就以正确的方式开发这类东西。


问题答案:

首先,从坏消息开始:由于Node.js是一项非常年轻的技术,我想您会发现创建一个完整的网站以及对其进行维护/操作的过程将与您现在所习惯的完全不同。

Josh3736补充:一旦弄清了Node.js及其各种程序包(Connect,Express)如何工作,我发现您可以非常快速地开发新站点。

Node.js中当前存在的粗糙边缘,再加上其快速的开发速度以及所涉及的所有模块,可能会使事情变得复杂,并使事情变得不那么简单,快速和直接。

好了,这是个好消息:

该节点包管理器,NPM有很多很好的工具和框架,扩大Node.js的裸露的骨头的功能,使其适合于创建一个Web服务器。

最值得注意的是Express
Framework
,其中包含运行网络服务器所需的几乎所有内容(包括cookie,会话和路径路由)。此外,Express还支持局部函数,它会处理您的页眉和页脚包含的内容。

Express建立在Sencha的Connect之上。Cookies和会话实际上由Connect提供支持。Express是简化您的路由并处理视图/部分的工具。因此,如果您不需要Express附带的所有功能,则可以选择Connect。

如果您想对这些局部使用模板,那么Jade Template Engine可以为您加快处理速度。尽管Josh3736指出Jade较慢且具有很大的空白。在此处可以找到更完整的概述,其中包括他的最爱doT。(我个人socket.io仅将Node.js用于基于基础的应用程序,因此在模板方面,他是比我更好的消息来源)。

可以 使用db-mysql模块从Node.js连接到MySQL
,但是如果您不需要它,因为您正在访问连接到已经存在的系统的数据,我建议您使用更多…’现代”方法,即使用大多数Node.js项目似乎使用的NoSQL数据库。通过Mongoose进行MongoDB是流行的方式。

或者,如果它只是存储您感兴趣的对象,则直接使用Redis(无论如何,您可能有时还是需要使用Redis)。

网站建成后,您将必须对其进行部署并确保其继续运行。有许多方法可以做到这一点,例如使用内置的群集支持或使用功能更友好的forevernpm模块。
结论

我想知道的是:

询问在Node.js中构建网站的最佳实践是什么,与询问在PHP中构建网站的最佳方法是什么相同:100个开发人员将为您提供100个不同的答案。

NPM拥有各种出色的框架,这些框架可以大大简化涉及的许多任务,但是这完全基于偏好,这才是真正的方法。

正如我已经说过的那样,Node.js仍然是一种很年轻的技术,因此还没有任何框架或其他工具成为“事实上的标准”。对于您尝试执行的大多数操作,可能会有多种选择,并且由于更新Node.js本身和大多数模块的速度很快,因此期望代码在更新期间使用它们时会中断。您必须跟上。

全部放在一起

就像我说过的那样,Node.js的主要生产用途是能够使用socket.io,因此我没有任何好的生产示例(而且,由于我打算休假,所以我没有。也没有时间将它们放在一起)。有一些很好的例子:

  • 使用Express和Jade进行设置 部署
  • 使用Express,Jade和MongoDB的非常完整的博客示例
  • 结合Restify(Express的扩展),Backbone.js和Mongoose

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

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



 类似资料:
  • 问题内容: 我有一个普通的Node.js脚本,该脚本通过API从Wikipedia中提取数据并将其存储在SQLite数据库中。我正在使用此node- sqlite3 模块。 在某些情况下,我要提取多达60万篇文章中的数据,并在数据库中连续存储有关每篇文章的一些元数据。从API中以500为一组检索文章。 检索带有500条文章中的数据的JSON对象的请求将对象传递给此回调: 这些模块默认情况下并行运行

  • 关于 Web 图形 设计 Web 图形时,所要关注的问题与设计印刷图形截然不同。有关存储 Web 图形的视频,请参阅 www.adobe.com/go/vid0063_cn。有关在 Web 应用程序之间进行导入、复制以及粘贴的视频,请参阅 www.adobe.com/go/vid0193_cn。 为了帮助您在 Web 图形方面作出客观决策,请记住以下三项原则: 1. 使用 Web 安全颜色。 颜色

  • 问题内容: 我已经在这个问题上苦苦挣扎了好几个月了,但是以前我从来没有需要探索所有可能的选择的情况。现在,我觉得该是时候了解各种可能性并创建自己的个人喜好了,以便在我即将进行的项目中使用。 首先让我勾勒出我要寻找的情况 我将要升级/重新开发已经使用了一段时间的内容管理系统。但是,我觉得多语言是对该系统的巨大改进。在我没有使用任何框架之前,我将在即将到来的项目中使用Laraval4。Laravel似

  • 问题内容: 我已经阅读了一些有关如何将Mongo与Node结合使用的指南,它们似乎都以不同的方式连接到数据库。一种对我有效的特定方式是: 但是,这对我来说似乎效率低下/很奇怪,每当出现时,我就不得不重新连接到数据库,例如用于创建新用户或检索信息。 似乎更适合我的另一种方法是 我已经看到有几个网站可以按照这些方式进行操作,但是我个人无法满足上述要求。我一直在服务器端收到错误消息。因此,我的问题是,如

  • 问题内容: 我的最终目标是使每个服务器实例的node.js更具成本效益。 我不是在玩游戏或聊天室,而是在为客户提供简单的网站。我想在单个服务器上容纳多个客户端,但使用主机头映射将多个网站从80端口运行。我仍想在使用Express,但如果可能的话,它更像是从端口80路由到其他节点应用程序的路由。如果以此方式完成节点,则可能会更便宜,但就我的目的而言,它目前更昂贵,因为如果每个客户在端口80上运行,他

  • 问题内容: 多线程Java应用程序中进行进程间通信的最佳方法是什么? 它应该是高性能的(因此请不要使用JMS),易于实现且可靠,以便对象和数据只能绑定到一个线程? 任何想法欢迎! 问题答案: 假设场景1是JVM,那么实际上应该是多个线程,尤其是各种Queue实现,都是java.util.concurrent。但是,在此之上的抽象可能很好,Jetlang看起来非常有趣,轻量级的Java消息传递。