揭秘Node.js深受欢迎的原因

Node.js是一项服务器技术,它用来构建和运行Web应用,这和ASP.NET,Ruby on Rails或Spring框架做的工作是类似的。它 使用JavaScript作为主要的开发语言,有一个自带的轻量级Web服务器,还有Node包管理(NPM)的大量插件,你就可以按照你自己的需求来塑 造Web应用,像添加MVC特性,加入Restful服务,OAuth或SSL安全性等等。 但是,是什么原因让Node.js突然间如此流行呢?听起来像是有了一种新的Web开发技术,是这样吗?我们来汇总一下原因: 1. 语言的重复使用 像ASP.NET或Spring这样的技术需要开发人员学习一门新的服务端语言,比如C#,VB.NET或者Java。而Node.js在服务端和客户端都是使用JavaScript,这意味着开发人员在各层上只需使用一门语言。 2. 对于开发者易转型 有一个事实就是JavaScript是Web开发者们熟知的语言,大部分人都了解JavaScript或多少使用过它。所以说,一个Web开发人员从其他技术转型到Node.js是很简单的。 3. 轻量级 Node.js使用的是事件驱动架构,这就是说在它上面做的每一件事,每一个独立的调用和操作,都是一系列的异步回调。这使得Node.js运行在一个线 程上,这一点和其它的Web技术是不同的,它们每个客户端的请求都会生成一个新的线程来处理。这也正是非阻塞I/O的本质所在。

4. 支持对象数据库 在Node.js应用中使用像MongoDB这样的对象数据库简是十分常见的,MongoDB和传统的SQL数据库不同的是,它使用的是基于文档的模型而非关系型模型,它用的不是表,而是类似JSON这样的对象。这就很适合ORM的热爱者了。 5. 受到IDE和代码编辑器的广泛支持 JavaScript已经存在相当长一段时间了,所以像Visual Studio,Eclipse这样的IDE都是支持JavaScript代码提示和高亮的,另外像NotePad++和Sublime Text之类的代码编辑器也同样支持这些。 6. 可以随处托管服务 一些Web服务器和云服务提供商都支持Node.js的Web应用。我们在这里说几个,包括Google, Microsoft IIS, Heroku, Microsoft Azure, Amazon(AWS)等等。 这就是Node.js流行的原因,相信你会喜欢上它的。关于Web开发和JavaScript,还推荐你看看《为HTML5开发人员量身打造的7个Web框架》《6个好用的Web开发工具》《20款最优秀的JavaScript编辑器》,希望帮到你。 原文:http://css.dzone.com/articles/why-nodejs-so-popular 译文:http://www.php100.com/html/it/focus/2014/1127/7922.html (翻译:PHP100_Zeroing)

原文发布于微信公众号 - php(phpdaily)

原文发表时间:2014-11-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

逆向分析神器BinNavi开源了

得益于IDA pro十分开放的架构,Gergely Erdelyi和Ero Carrera在2004年基于IDA pro发布了IDAPython,逆向工程师能够...

44180
来自专栏开源项目

揭秘互联网防火墙核心技术 | 码云周刊第 55 期

在日益复杂的互联网活动中,一个网络防火墙扮演着防备潜在的恶意的活动的屏障,并可通过一个”门”来允许人们在你的安全网络和开放的不安全的网络之间通信。今天,小编推荐...

34130
来自专栏C/C++基础

Win10安装VS2015失败解决办法

个人解决方案: 在控制面板-》软件卸载中将Visual C++ 2012 redistributable、Visual C++ 2010 redistrib...

21010
来自专栏*坤的Blog

SSH客户端,FinalShell服务器管理,远程桌面加速软件,支持Windows,Mac OS X,Linux,版本2.6.3.1,时间2017.12.10

31830
来自专栏用户画像

3.2.6工作集

工作集(或驻留集)是指在某段时间间隔内,进程要访问的页面集合。经常被使用的页面需要在工作集中,而长时间不被使用的页面要从工作集中被丢弃。为了防止系统出现抖动现象...

8110
来自专栏Debian社区

Linux Lite 宣布使用基于 Linux Kernel 4.14 的内核

Linux Lite 项目维护成员 Jerry Bezencon 今天发布推文,这款基于 Ubuntu 的发行版本现在已经基于最新的 Linux Kernel ...

16520
来自专栏逍遥剑客的游戏开发

游戏配置序列化

32240
来自专栏Android群英传

单应用的多进程架构

13110
来自专栏Golang语言社区

Golang语言--db对象初始化

声明一个全局的db对象,并进行初始化。 var db *sql.DB func init() { db, _ = sql.Open("mysql", "ro...

39680
来自专栏bboysoul

给linux终端设置代理

在中国的互联网环境下做一个程序员真的很难,电信出口带宽就像吃屎一样的慢,移动还好点 ,但是没办法,谁叫你是chinese 首先呢设置代理的话你得确保你的ss已...

18320

扫码关注云+社区

领取腾讯云代金券