2021-01-15 09:06

Node.Js开发新手向专家开发人员的提示

Node.Js是技术领域中最热门的趋势,它使开发人员可以选择35,000个模块进行浏览。用户说Node太容易了,无法开发可以正常工作的应用程序,可以平衡而不会遇到麻烦。Node.Js的粉丝群已开始传播他们的言论,如宗教信仰。让我们看看是什么使它与众不同。如果你想了解更多内容,请联系我们济南网站建设

什么是Node.js?

Wikipedia说:“ Node.js是Google V8 JavaScript引擎,libuv平台抽象层和核心库的打包编译,该库本身主要是用JavaScript编写的。用于服务器端编码,处理AJAX请求,维护不同API的路由并处理数据库。”

Node.js如何工作?

Node.js的创建者Ryan Dahl旨在创建具有推送功能的实时网站,并受Gmail等应用程序的启发。因此,他附带了Node.js。在Node.js中,他为开发人员提供了一种用于非阻塞,事件驱动的I / O范例的工具。

我们知道,在Web浏览器中,开发人员被限制使用语言,因为他们必须为用户提供安全性。通常在这种情况下,所有活动都针对DOM操作和异步页面信息加载。

在这里,Node.js为保留其浏览器性质的新视角提供了机会。

1,在Node.js中,开发人员发现什么容易且与他们的工作兼容?

2.专家们一年来学到了什么?

3.新手必须避免哪些错误?

好吧,随着时间的流逝,专家们已经意识到了对新手和专家都有好处的各种技巧和窍门。让我们分享其中的一些好处,以帮助您回顾或重新开始。

Node.js:它是异步的

Node.js的一个显着特征是它是单线程的,从上到下都是异步设计和实现的。由于这种异步属性,超过60%的开发人员都遇到了问题,但是今天大多数人都知道解决方案。当您运行耗时的工作(例如访问数据库)时,请使用计数器来跟踪循环,否则在完成循环之前,将开始下一个功能。

存在运气不好,因为仍然有可能进行同步/阻塞呼叫。好吧,许多文件系统都具有异步和同步版本,例如writeFile和writeFileSync。即使您在代码中避免使用异步方法,也可能存在于具有阻塞调用的外部库中。

看这里–

良好做法:异步写入文件

1 | fs.writeFile('message.txt','Hello Node',function(err){

2 | console.log(“已保存,服务器保持响应状态!”);

3 |});

坏习惯:同步写入文件

1 | fs.writeFileSync('message.txt” Hello Node');

2 | console.log(“已保存,但您只是阻止了所有请求!”);

Node.Js:什么是回调地狱,如何处理

什么是回调地狱?–嵌套过多的异步回调称为回调地狱。

最好将嵌套的回调保持在最低限度,因为这是解开回调的一种简单方法。

让我们从一个典型的例子开始解释我们的观点–

1 |功能寄存器(名称,密码,cb){

2 | checkIfNameExists(name,function(err,result){

3 | if(err){

4 | return cb(“ error”);

5 |}

6 | checkIfPasswordGood(password,function(err,result){

7 | if(err) {

8 | return cb(“ error”);

9 |}

10 | createAccount(name,password,function(err,result){

11 | if(err){

12 | return cb(“ error”);

13 |}

14 | createBlog(name,function(err,result){

15 | sendEmail(name,function(err,result){

16 | callback(result);

17 |});

18 |});

19 |});

20 |} );

21 |});

22 | }

您会遇到某些导致Callback Hell的异步操作,其-

异步操作链:从API中获取内容,然后使用另一个API处理并将结果写入数据库。

异步设置操作:完成所有操作后,收集对象,执行异步操作或其他一些操作

为了防止回调地狱,您可以浏览出色的库,例如:

1. Async.js:允许在不嵌套的情况下轻松地连续执行函数2.Bluebird:Promise使映射和排队的异步逻辑更易于管理3.问:像

Bluebird一样,毫不费力地展示了promise的概念,可轻松管理嵌套调用

Node.Js:单独的实用程序和配置文件

开发人员必须养成将util.js文件用于常用功能的习惯。尝试获取此文件作为模块中的变量。反过来,这将减少全局变量的数量和代码长度。甚至可以配置存储常量参数的文件。

假设您需要一个应用程序以显示前五名学生的详细信息,但该应用程序可能会有所不同并变成十名学生。因此,不要对您的代码限制感到困难。保留在配置文件中。最佳实践之一是维护对多语言应用程序有用的“ Lang”文件夹。

至于文件获取方面,在Node.js中很简单。您可以写,

1 | var util = require('./ util.js'),

2 |

3 | englishMessages = require('./ lang / en.js');

Node.js:查看监视器性能

问问自己如何监视应用程序性能和配置文件,因为您需要确保应用程序以最佳速度运行。好吧,为此,您将获得一些工具,例如Nodefly,New relic等

Nodefly –简单的代码行,开始监视您的应用程序以检测内存泄漏,或测量Redis花费多长时间,以进行mongo查询和其他操作。的东西。

New Relic –此工具将帮助开发人员在您的实时且数据密集的Node.js应用程序中监视对服务器监视的响应时间。

Node.Js:使用粒度模块进行委托

您必须在Node.js中使用许多表,因此有必要拆分代码。最好为不同的表创建不同的模块,并与子模块进行交互以创建单独的父模块。

好吧,让我们举个例子-办公数据库中有不同的部门,4到6个项目为一个部门,而雇员人数为一个部门。

现在,您可以有四个模块来构建这个项目-

一个。员工

b。项目

c。部门和

d。办公室

在这里,Office是您的父模块,其余三个是孩子。该模块的功能是将控制器传递给适当的模块。假设您尝试更新Employee表,为此,您还必须更新Projects和Department。不要试图将其他模块纳入学生模块。最好将请求传递到Office模块,并将请求定向到首选模块,这将帮助您轻松地对代码进行排序和检查错误。

Node.Js:调试很容易

如果您使用Java或C#之类的具有高度IDE集成的语言,那么调试Node.js似乎会造成混乱。大多数新的Node开发人员都喜欢通过console.log来采用调试模式。但是,您仍然可以获得调试的一些替代方法。Node.js带有一个内置的调试器,该调试器通过调用Node debug来运行,例如Node Inspector。

节点检查器–使用Blink开发人员工具(较早的WebKit Web检查器)的node.js调试器接口。它允许开发人员使用他们选择的任何编辑器和chrome Web工具调试应用程序。使用Node-Inspector,开发人员可以做一些很酷的事情,例如实时代码更改,步骤调试,作用域注入和其他很酷的方面。要跟进各个方面,请在Github上找到更多信息。

Node.Js:小心新模块

您将在Node.js中遇到超过35,000个模块,但其中一些已失效。由于Node.js在其主要版本中反复更改其API,因此工作混乱。在v0.8.x下运行的模块可能在v0.10.x下终止。因此,在使用新模块之前,应检查PR列表,以确保它没有错误或处于维护状态。

Node.Js:Node Package Manager是一个奇迹

节点软件包管理器是Node.js所有部署系统的根基,它是PaaS(平台即服务)提供程序的基础,简化了库依赖关系的管理。Node附带了令人惊叹的npm,它可以安装package.json清单文件中指定的模块。好吧,在这种情况下,新手会使用他们使用的所有模块来更新package.json。每次打开软件包并使用新模块更新依赖项属性都是很痛苦的,但是npm会帮您做到这一点!

因此,最好运行npm install,保存模块名称,然后npm会自动使用正确的模块和版本名称更新package.json。

Node.js:小心错误

对于新手,重要的是要记住节点可能会因为单个错误而很容易崩溃。因此,我们建议新手和专家正确处理错误并针对错误提出适当的信息。使用try-catch框会减慢您的处理速度,因此请避免使用它。

Node.js:不要忘记返回

大多数初学者忘记在回调后返回。尽管有时这根本没有任何含义,但是有时您会遇到一些奇怪的问题,因为您可能会两次收到回调。

让我们来看一个示例–

1 |。函数do(err,result,callback){

2 | if(err){

3 | 回调(“错误”);

4 | }

5 | 回调(“好”);

6 | }

该片段确实有意义。如果发现“错误”,则发送回调,如果发送不成功,则发送回调。但是,调用回调不是停止完成执行的好方法,它会继续调用回调。

Node.js:结论

今天,我们经常开始使用Node.js创建实时应用程序。您必须在某些项目(例如API或网络项目)中寻找它们的未来用途,因为Node.js将被证明是一种很好的部署模型。凭借其预先格式化的异步代码和易于选择的语言使用,Node.js是一个非常受欢迎的选择。如果你想了解更多内容,请联系我们济南网站建设