前端为什么要用Nodejs?

你熟悉JavaScript。

假设你正在使用一个强大的客户端框架(Angular,Ember,

Backbone)和REST-ful服务器端API,后者使用JSON作为数据格式来传输和接收数据。即使你没有使用这些框架中的任何一个,你也已经用jQuery编写了你自己的框架。所以如果你在服务器端不用Node.js,那么你就要继续翻译。你在翻译两件事:

您头脑中的JavaScript逻辑被转换成服务器端框架的逻辑。

来自JSON的HTTP数据被转换成您的服务器端对象。

JavaScript贯穿你的应用,你不仅收获了智能,还收获了实践经验。通过重用模型和模板,您可以减少应用程序的规模,同时降低复杂性和出现错误的可能性。

它很快

Node.js是一个JavaScript运行环境,使用了谷歌在Chrome中使用的V8引擎。V8以闪电般的速度编译和执行JavaScript,因为V8将JavaScript编译成本机代码。包括网络连接读写、文件系统读写、数据库读写——所有web应用中的日常任务——都在Node中执行得非常非常快。Node使您能够创建快速和大规模的网络应用程序,并能以高吞吐量处理大量实时连接。

工具

Npm是Node.js的包管理器,很牛逼。这真是太棒了。当然,它类似于其他生态系统中的包管理器,但是npm很稳定并且很快保持一致。他在寻找和安装项目依赖方面做得非常好。他将这个包与其他项目隔离开来,以防止版本混淆。

实时变得简单

如果Node.js擅长多并发连接,那么他也擅长多用户、实时的web程序,比如聊天室、游戏。结节

事件循环

可以满足多个用户的需求。实时功能使用websocket协议。Websocket是客户端和服务器之间简单的双向通信通道。因此,服务器可以像客户端推送数据一样将数据推送到客户端。Websocket运行在TCP中,避免了HTTP的消耗。

流式数据

传统上,web框架将HTTP请求和响应视为一个完整的数据对象。事实上,它们是I/O流,你可以想象,如果你以流的形式从文件系统中取出文件。由于Node.js非常擅长处理I/O,所以我们可以利用这个特性来创建一些很酷的东西。例如,它可以在上传音频或视频文件时对其进行转码,从而减少整体处理时间。

一个代码库和免费的实时

Meteor是基于节点的下一代web框架。他可以在客户机和服务器上运行相同的代码库。然后,数据会自动保存在服务器中。其他方式也行!任何服务器上的数据都会自动传输到客户端。