Node.js是一种后起的优秀服务器编程语言,它用来构建和运行Web应用,这和ASP.NET,Ruby on Rails或Spring框架做的工作是类似的。它使用JavaScript作为主要的开发语言,有一个自带的轻量级Web服务器,还有Node包管理(NPM)的大量插件,你就可以按照你自己的需求来塑造Web应用,像添加MVC特性,加入Restful服务,OAuth或SSL安全性等等。但是,是什么原因让Node.js突然间如此流行呢?听起来像是有了一种新的Web开发技术,是这样吗?我们来汇总一下原因:

  前端/后端开发使用同一种语言

  像ASP.NET或Spring这样的技术需要开发人员学习一门新的服务端语言,比如C#,VB.NET或者Java。而Node.js在服务端和客户端都是使用JavaScript,这意味着开发人员在各层上只需使用一门语言。

  容易学会

  有一个事实就是JavaScript是Web开发者们熟知的语言,大部分人都了解JavaScript或多少使用过它。所以说,一个Web开发人员从其他技术转型到Node.js是很简单的。

  轻量

  Node.js使用的是事件驱动架构,这就是说在它上面做的每一件事,每一个独立的调用和操作,都是一系列的异步回调。这使得Node.js运行在一个线程上,这一点和其它的Web技术是不同的,它们每个客户端的请求都会生成一个新的线程来处理。这也正是非阻塞I/O的本质所在。

  支持NoSQL数据库

  在Node.js应用中使用像MongoDB这样的NoSQL数据库简是十分常见的,MongoDB和传统的SQL数据库不同的是,它使用的是基于文档的模型而非关系型模型,它用的不是表,而是类似JSON这样的对象。这就很适合ORM的热爱者了。

  有很好的IDE和代码编辑器支持

  JavaScript已经存在相当长一段时间了,所以像Visual Studio,Eclipse这样的IDE都是支持JavaScript代码提示和高亮的,另外像NotePad++和Sublime Text之类的代码编辑器也同样支持这些。

  代码托管服务支持广泛

  一些Web服务器和云服务提供商都支持Node.js的Web应用。我们在这里说几个,包括Google,Microsoft IIS,Heroku,Microsoft Azure,Amazon(AWS)等等。

Node.js深受欢迎的六大原因的更多相关文章

  1. 《超实用的Node.js代码段》连载三:Node.js深受欢迎的六大原因

    <超实用的Node.js代码段>连载一:获取Buffer对象字节长度 <超实用的Node.js代码段>连载二:正确拼接Buffer Node.js是一种后起的优秀服务器编程语言 ...

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

    揭秘Node.js深受欢迎的原因 http://www.php100.com/html/dujia/2014/1127/7922.html

  3. 深入浅出Node.js(一):什么是Node.js

    Node.js从2009年诞生至今,已经发展了两年有余,其成长的速度有目共睹.从在github的访问量超过Rails,到去年底Node.jsS创始人Ryan Dalh加盟Joyent获得企业资助,再到 ...

  4. Beaglebone Black– 智能家居控制系统 LAS - 网页服务器 Node.js 、Web Service、页面 和 TCP 请求转 UDP 发送

    上一篇,纯粹玩 ESP8266,写入了 init.lua 能收发 UDP.这次拿 BBB 开刀,用 BBB host 一个 web server ,用于与用户交互,数据来自 ESP8266 的 UDP ...

  5. 深入浅出Node.js(一):什么是Node.js(转贴)

    以下内容转自:http://www.infoq.com/cn/articles/what-is-nodejs/ 作者:崔康 [编者按]:Node.js从2009年诞生至今,已经发展了两年有余,其成长的 ...

  6. [译] 所有你需要知道的关于完全理解 Node.js 事件循环及其度量

    原文地址:All you need to know to really understand the Node.js Event Loop and its Metrics 原文作者:Daniel Kh ...

  7. node.js 调试问题

    最近打算在项目过程中使用node.js辅助解决一些问题,需要用到node.js的调试技术. 通常而言,大家都会提到debugger或者node-inspector方法. debugger方法谁用谁知道 ...

  8. iOS 使用node js 搭建简单的本地服务器

    一.前提:基于iOS 项目 调用,使用了第三方框架NodeMobile.技术说明关键是 应用生命整个周期只能在应用启动时候开辟的一个线程里申请 一个 node  js 资源.如果终止了运行,重启是不支 ...

  9. 深入浅出Node.js(上)

    (一):什么是Node.js Node.js从2009年诞生至今,已经发展了两年有余,其成长的速度有目共睹.从在github的访问量超过Rails,到去年底Node.jsS创始人Ryan Dalh加盟 ...

随机推荐

  1. wcscpy wcscpy_s strcpy strcpy_s的区别

    原型声明:extern char *strcpy(char *dest,const char *src); 头文件:string.h 功能:把从src地址开始且含有NULL结束符的字符串赋值到以des ...

  2. MySQL初夜(乱码问题,命令行客户端使用)

    一.乱码问题 装好MySQL,并且将数据从SQLServer导入到MySQL之后,程序一直报错. 解决方案: 首先,输入命令: show variables like "character_ ...

  3. 【MySQL】MySQL无基础学习和入门之一:数据库基础概述和实验环境搭建

    数据库基础概述  大部分互联网公司都选择MySQL作为业务数据存储数据库,除了MySQL目前还有很多公司使用Oracle(甲骨文).SQLserver(微软).MongoDB等. 从使用成本来区分可以 ...

  4. OpenGL ES 中Uniform块

    1.采用uniform Block的原因如果你的程序中包含了多个着色器,而且这些着色器使用了相同的Uniform变量,你就不得不为每个着色器分别管理这些变量.Uniform变量的location是在程 ...

  5. WP8_定位新页面中listbox的某项

    即将跳转到页面A,在页面A中有一个listbox,在跳转的时候,接收参数,自动选中listbox中的某项 /// <summary> /// 接收参数,定位当前选中项 /// </s ...

  6. 高效渲染css

    译自:http://css-tricks.com/efficiently-rendering-css/ 无可否认我并不经常考虑这个问题… 我们书写的CSS的效率如何,浏览器渲染它的速度如何? 浏览器的 ...

  7. Windows USN Journal Parsing

    What is "USN Journal"? It is "Update Sequence Number Journal". It records change ...

  8. 码农谷 球从M米高度自由下落第N次落地时反弹的高度

    题目描述 一球从M米高度自由下落,每次落地后返回原高度的一半,再落下.它在第N次落地时反弹多高?共经过多少米? 保留两位小数. 输入描述 M N 输出描述 它在第N次落地时反弹多高?共经过多少米? 保 ...

  9. php 随机显示图片的函数(实例分享)

    转自:http://www.jbxue.com/article/12695.html 发布:thatboy   来源:Net     [大 中 小] 本文分享一个php实现的随机显示图片的函数,可以将 ...

  10. Delphi XE5 for android 图片缩放和拖动处理

    首先,需要分辨手势的类型. 有两种类型的手势: 一是标准手势(Standard Gestures): 在Windows,android上,标准手势都是用一个手指. 在Mac OS X and iOS上 ...