利用Node.js创建Web应用程序前须了解这七项

译文
开发 后端
随着Node.js人气的持续提升,大家很可能终有一天会利用它来开发自己的下一款Web应用程序。目前已经有相当一部分程序员开始利用它来创建实时Web API,这是因为Node.js无疑是我们能够找到的最优秀的、可用于创建服务器端应用的运行时系统。

[[156727]]

随着Node.js人气的持续提升,大家很可能终有一天会利用它来开发自己的下一款Web应用程序。目前已经有相当一部分程序员开始利用它来创建实时Web API,这是因为Node.js无疑是我们能够找到的***秀的、可用于创建服务器端应用的运行时系统。这是一款具备高度可定制能力的服务器引擎,大家可以根据自己的实际需求对其进行设置,从而使其更好地为各位服务。而如果我们需要的是一套易用性出众的系统,Node.js同样能够满足需求,而且它会改变我们构建网络或者其它事件驱动型应用程序的具体方式。在今天的文章中,我们将一同了解关于Node.js的几大关键性事实。

1) Node.js的速度表现非常惊人

Node.js使用的是一套V8引擎,其能够以极快速度完成JavaScript的编译与执行。而这主要是由于V8能够将JavaScript作为原生机器码处理。

另外值得一提的就是Node.js的事件循环;其属于单线程,且以异步方式执行所有操作。它能够异步执行全部I/O操作,确保大家不会遭遇任何延迟状况。

在使用Node.js的时候,大家会享受到面向网络连接、文件系统以及数据库的快速读取与写入效果。这些在应用程序构建工作当中显然都非常重要。

总而言之,在使用Node.js的过程中,大家会骄傲地发现自己将拥有速度极快且可扩展能力良好的Web应用程序,而且其能够并行处理大量连接并仍然保持理想的输出速度。

2) Node.js代码包共享极为便利

在Node.js社区当中,库代码包的共享可谓极为便利。这些代码包在文化、法律、规程乃至技术层面皆允许我们进行共享。Node.js还配备一套Node Package Manager,其中包含有大量现成的代码包选项。这就使得我们很可能从他人已经开发完成的成果中发现自己需要的部分。

大家可以创建属于自己的Node.js代码包,而后将其轻松共享给其他用户。要创建这样一个代码包,大家可以使用以下代码:

 

  1. hello 
  2.  
  3. | index.js 
  4.  
  5. | package.json 

一旦创建完成,大家即可利用以下代码在其它应用当中使用该代码包。

 

  1. hello-world 
  2.  
  3. | app.js 

现在我们可以将该代码包定位至其文件夹当中并加以运行。一旦其投入运行,我们即可根据需要随意加以使用。

3) Node.js拥有出色的实时能力

.实时能力在Node.js的实时能力即强大又易于实现。它能够在大量并发连接当中良好起效,因此其在即时游戏、通讯以及其它多种常见的多用户实时应用当中拥有出色的表现。

Node.js当中的多用户要求由其事件循环进行处理,而其实时能力则可通过WebSocket协议的使用得以实现;这基本上相当于利用Node.js在服务器与客户端之间建立起一条双向通信通道。有了这条通信通道,客户端就能够轻松将数据发送至服务器,而服务器亦可以同样的方式将数据发送至客户端。

目前***人气的WebSocket协议之一正是Socket.io。以下代码演示了服务器如何使用该协议:

 

  1. var app = require(‘http’).createServer(handler) 
  2.  
  3. var io = require(‘socket.io’)(app); 
  4.  
  5. app.listen(8080); 
  6.  
  7. io.on(‘connection’, function (socket) { 

// 向客户端发送一条消息

 

  1. socket.emit(‘event to client’, { hello: ‘world’ }); 

// 处理一条来自客户端的消息

 

  1. socket.on(‘event from client, function (data) { 
  2.  
  3. console.log(data); 
  4.  
  5. }); 
  6.  
  7. }); 

4) Node.js提供事件驱动型编程机制

事件机制可谓贯穿Node.js整体,这也就解释了为什么它的速度表现能够超越任何其它类似的现有技术方案。一旦大家启动了Node.js服务器,它就会初始化自身变量,而后进行函数声明并等待事件发生。

在这样一款应用程序当中存在着主循环,其作用在于监听事件从而在某一事件或者全部事件被触发之时触发回调函数。

http://s4.51cto.com/wyfs02/M02/76/43/wKioL1ZOgqXSpMq6AAT0bP8hCyo519.png

以下代码示例说明了整个流程的具体实现方式:

//导入事件模块

 

  1. var events = require(‘events’); 

//创建一个eventEmitter对象

 

  1. var eventEmitter = new events.EventEmitter(); 

5) Node.js拥有足以支持生产活动的充足配套工具

在使用Node.js时,大家能够获得一切自己在构建应用程序并利用其实现***生产效率与性能表现的必要工具。Node.js的工具组合非常齐全,足以帮助大家在无需额外找寻工具方案的前提下创建切实有效的应用成果。

这是一项坚实的技术方案,具备应当具备的一切,这意味着大家能够直接着手创建应用程序并加以运行,而无需在其它准备工作上浪费任何时间。

6) Node.js允许我们使用一套代码库完成开发

在使用Node.js时,大家可以在应用开发过程当中在服务器与客户端内使用同一套代码库。这也使得二者之间的数据同步成为可能。而在这类应用当中,我推荐大家使用Meteor框架与之相配合。

Meteor是一款出色的框架方案,其允许应用用户在服务器与用户端运行同样的代码内容。如果大家编写的是客户端代码,其会自动将其保存至数据库,而这部分数据将会自动反映在服务器当中。在此之后,对于数据内容的任何变更都会同时被发送至客户端以及服务器处。以下代码就明确解释了这一过程:

//在浏览器内直接点击“submit”后即可保存“name”的值

 

  1. ‘.click .submit’: function(e, tpl) { 
  2.  
  3. Users.update( 
  4.  
  5. { _id: this._id }, 
  6.  
  7. { $set: { name: $(‘.name’).val() }} 
  8.  
  9. ); 
  10.  

7)发展前景一片光明

相当一部分开源项目是由技术志愿者们负责维护的。在这种情况下,否认其目前运作态势有多么良好,其未来发展前景都得不到有效的保障。但Node.js的情况则完全不同。尽管同样属于彻头彻尾的开源技术,但其背后拥有着企业管理者以及赞助商的支持,这种立足于真正企业的项目无疑在发展前景方面更令人放心。

另外,该项目还受到其它多家大型企业的支持,具体包括雅虎、微软、PayPal以及其它多家厂商。这意味着它将长久存在并且值得我们信任并依赖。

通过以上七项事实,相信大家已经了解到了Node.js的惊人魅力。Web开发人员将在探索过程中发现远远超过需求与预期的巨大宝藏,并借此打造出一款出色的应用程序。Node.js能够帮助我们自由发挥自己的想象力与创造力,而它的易用性也让它成为最为理想的Web开发选项。

原文标题:7 Things To Know About Node.js Before Building Your Web Application

 
责任编辑:李英杰 来源: 51cto.com
相关推荐

2015-12-01 11:04:02

移动·开发技术周刊

2013-05-17 09:41:02

Node.js云应用开发IaaS

2023-06-16 15:14:57

Node.js容器化开发

2023-03-24 15:57:31

Node.js应用程序容器

2023-10-26 01:28:02

2024-03-27 11:18:02

2020-09-04 15:06:04

Docker容器化Node.js

2012-09-17 11:26:14

IBMdw

2023-03-07 14:31:44

Node.jsPython应用程序

2022-09-12 16:02:32

Docker安全Node.js

2024-03-22 11:40:40

Node.jsNodeCRUD

2022-05-09 17:33:23

PWA渐进式Web应用程序离线优先

2022-12-14 14:40:27

Node.js开发应用程序

2020-01-15 14:20:07

Node.js应用程序javascript

2020-09-22 07:35:42

Node.jsVue.js文件压缩

2019-08-29 10:58:02

Web 开发框架

2024-02-29 08:32:03

HTTP协议Web服务消息队列

2009-07-24 10:41:00

ASP.NET Web

2009-01-19 11:07:42

C#Web.NET

2014-04-01 11:02:00

Node.jsWeb Socket聊天程序
点赞
收藏

51CTO技术栈公众号