快捷搜索:  汽车  科技

node.js关键字及语法(常见的Node.js开发错误)

node.js关键字及语法(常见的Node.js开发错误)现在,让我们不再蜿蜒,直接进入Node.js陷阱列表应该:误区:具有讽刺意味的是,这些错误恰恰源于:这就是为什么我自己进行调查,按流行度过滤结果,并将开发人员经常犯的10个最常见的Node.js开发错误列表放在一起。那你也冒险,因此......“破坏”自己!

Node.js可能很棘手。继续阅读以了解使用Node.js时出现的五个常见错误以及如何避免它们。

node.js关键字及语法(常见的Node.js开发错误)(1)

只是面对它:你正在制作或已经(至少)发现了一些常见的Node.js开发错误,我将把它们放到聚光灯下!特别是如果你是Node.js的新手。

即使这种高性能的Web服务器/ JavaScript运行时的优点是无可争议的:

  • 它保证了低延迟......和高吞吐量。
  • 它很轻便。
  • 它为您提供了大量用于构建应用程序的插件。
  • 它使您能够开发具有双向实时连接的应用程序,其中“非常规”,客户端和服务器都可以启动通信。

然而,Node.js容易受到许多开发人员错误的影响。

具有讽刺意味的是,这些错误恰恰源于:

  1. 将Node.js不正确地实现到一个项目中。
  2. 此JavaScript运行时环境本身的错误使用。

这就是为什么我自己进行调查,按流行度过滤结果,并将开发人员经常犯的10个最常见的Node.js开发错误列表放在一起。

那你也冒险,因此......“破坏”自己!

误区:

  • 对您的应用项目的效果产生影响。
  • 使Node.js无法使用。

现在,让我们不再蜿蜒,直接进入Node.js陷阱列表应该:

  • 在处理下一个Node.js项目时,请保持警惕。
  • 为您提供有关如何充分利用Node.js所提供的一些指导。
1.阻止事件循环:过于普遍,几乎无法避免

这是上下文:

我们都知道,Node.js是一个单线程环境。以更实际的语言,这意味着您不能让应用程序的两个部分并行运行。

Node.js可以一次关注一个单独的线程,因此它通过异步执行输入输出操作来实现并发这只能意味着,如果上帝保佑,有些东西会阻挡事件循环,那么一切都会受阻!

所需要的只是一个连接到各种客户端的CPU绑定请求,以阻止事件循环。

然后,所有其他“排队等候”的客户也被阻止了!

现在,如何在构建Node.js应用程序时避免犯这个错误?

  • 您可以将开源模块和工具(如StrongOps)添加到工具箱中,并将它们放在手边,以检测事件循环中的任何小延迟。
  • 您可以单独处理每个案例。
  • 您尝试避免前端Node.js实例(客户端同时连接的实例)中的CPU密集型工作。
2.使用嵌套回调方法导致“回调地狱”

将回调深深嵌入到代码中,使其难以阅读,容易出错和“未命名”,这是Node.js开发人员众所周知的“做法”。

可能是最常见的Node.js开发错误之一。

您是否也是那些顽固地认为回调嵌套不可避免地处理异步操作的人之一?

然后你最好摆脱这种误解!

因为在开发过程中有一些方法可以避免这种方法,从而保持代码的整洁:

  • 使用异步模块。
  • 使用基于联合发电机的流量控制。
  • 使用承诺。
3.不分析和监控您的Node.js应用程序

“不要去黑暗的一面!”

我在这里要说的是,不分析(或监控)你的Node.js应用程序只会让你陷入黑暗。你将无法识别事件循环中的延迟或密切监视CPU负载和内存使用情况。

你只是在猜测。

注意:确保不要将分析与测试混淆; 分析信息可以帮助您监控Node.js应用程序的特定方面 - 它的功能返回时间或空间 - 为您提供有关“引擎盖下”内容的可操作见解。

无论您的项目是在本地开发环境中还是在生产模式下运行,主管程序监视器都至关重要。

说到这里,这里有一些监控程序的例子:

  • StrongLoop
  • AppDynamics
  • New Relic
  • Concurix

忽略了始终密切监视应用程序的需求,这是许多人低估的常见Node.js开发错误之一。

4.使用Console.log调试代码

console.log 当出现问题时,尽量抵制插入的诱惑 。并且不要以为我不明白这是多么诱人:

  • 在Node.js中,您可以使用打印几乎任何东西到控制台console.log。
  • 它将接受并打印任意数量的参数(很好地以空格分隔)。现在,这里的“丑陋的真相”在背后利用 console.log 的调试代码:
  • 通过将您的Node.js应用程序“暂停”。每次插入console.log,然后重新启动服务器/应用程序,实际上是在减慢开发过程。
  • 这种“方便但非正统”的调试方法只会让你得到不守规矩的代码。
  • 它会生成不必要的代码。
  • 在努力识别在“嘈杂”环境中调试的值时,调试可能会遇到意外的挑战:所有其他潜在日志记录操作的“噪音”。

最后:尝试一点同理心!下一个登陆同一个Node.js项目的开发人员可能只是......重复整个过程。

毕竟这就是Debug模块的构建!只需使用调试功能并将其保留在那里,而不是多次插入和删除console.log。

5. Node.js开发错误:取整数数据类型的数字

首先,请记住这一点:在JavaScript中,数字是浮点数据!

由于数字太大以至于“过度拉伸”浮动的极限并不常见,所以你不应该太担心这个。

尽管如此,当“异常”确实发生时,浮动的限制会被“推”,而你正在处理一个异常大的数字。这是麻烦发生的时候。

要避免这些类型的“异常”情况,对您的系统产生负面影响,请记住:

  • 运算符处理整数和浮点数不同。
  • 您可以依赖大型整数库:在大精度数上应用所需数学运算的库。

总而言之:错误计算你的浮点数,并且隐含其限制,仍然是程序员经常犯的常见Node.js开发错误之一。

猜您喜欢: