为什么Node.js会这么火呢?Node.js流行的原因
Node.js是一项服务器技术,它用来构建和运行Web应用,这和ASP.NET,Ruby on Rails或Spring框架做的工作是类似 的。它使用JavaScript作为主要的开发语言,有一个自带的轻量级Web服务器,还有Node包管理(NPM)的大量插件,你就可以按照你自己的需 求来塑造Web应用,像添加MVC特性,加入Restful服务,OAuth或SSL安全性等等。
语言的重复使用
像ASP.NET或Spring这样的技术需要开发人员学习一门新的服务端语言,比如C#,VB.NET或者Java。而Node.js在服务端和客户端都是使用JavaScript,这意味着开发人员在各层上只需使用一门语言。
对于开发者易转型
有一个事实就是JavaScript是Web开发者们熟知的语言,大部分人都了解JavaScript或多少使用过它。所以说,一个Web开发人员从其他技术转型到Node.js是很简单的。
轻量级
Node.js使用的是事件驱动架构,这就是说在它上面做的每一件事,每一个独立的调用和操作,都是一系列的异步回调。这使得Node.js运行在 一个线程上,这一点和其它的Web技术是不同的,它们每个客户端的请求都会生成一个新的线程来处理。这也正是非阻塞I/O的本质所在。
支持对象数据库
在Node.js应用中使用像MongoDB这样的对象数据库简是十分常见的,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如此深受欢迎的原因,如有遗漏,还请大家指正。
node.js还真是开发利器神器啊~
相关推荐
-
用NODE.JS中的流编写工具是要注意的事项
Node.js中的流十分强大,它对处理潜在的大文件提供了支持,也抽象了一些场景下的数据处理和传递.正因为它如此好用,所以在实战中我们常常基于它来编写一些工具 函数/库 ,但往往又由于自己对流的某些特性的疏忽,导致写出的 函数/库 在一些情况会达不到想要的效果,或者埋下一些隐藏的地雷.本文将会提供两个在编写基于流的工具时,私以为有些用的两个tips. 一,警惕EVENTEMITTER内存泄露 在一个可能被多次调用的函数中,如果需要给流添加事件监听器来执行某些操作.那么则需要警惕添加监听器而导致的内
-
Node.js中的流(Stream)介绍
什么是流? 说到流,就涉及到一个*nix的概念:管道--在*nix中,流在Shell中被实现为可以通过 |(管道符) 进行桥接的数据,一个进程的输出(stdout)可被直接作为下一个进程的输入(stdin). 在Node中,流(Stream)的概念与之类似,代表一种数据流可供桥接的能力. pipe 流化的精髓在于 .pipe()方法.可供桥接的能力,在于数据流的两端(上游/下游 或称为 读/写流)以一个 .pipe()方法进行桥接. 伪代码的表现形式为: 复制代码 代码如下: //上游.pipe
-
Node.js中的缓冲与流模块详细介绍
缓冲(buffer)模块 js起初就是为浏览器而设计的,所以能很好的处理unicode编码的字符串,但不能很好的处理二进制数据.这是Node.js的一个问题,因为Node.js旨在网络上发送和接收经常是以二进制格式传输的数据.比如: - 通过TCP连接发送和接收数据: - 从图像或者压缩文件读取二进制数据: - 从文件系统读写数据: - 处理来自网络的二进制数据流 而Buffer模块为Node.js带来了一种存储原始数据的方法,于是可以再js的上下文中使用二进制数据.每当需要在Node.j
-
最流行的Node.js精简型和全栈型开发框架介绍
快速开发而又容易扩展,高性能且鲁棒性强.Node.js的出现让所有网络应用开发者的这些梦想成为现实.但是,有如其他新的开发语言技术一样,从头开始使用Node.js的最基本功能来编写代码构建应用是一个非常划不来的耗时的事情.这个问题的解决方案非常简单且已经经受起时间的考验:使用一个已经提前打造好的开发框架.因此才会有如此多的如Express.js,Koa,Sails.js等框架的概念提出来并加以实现. 这些开发框架的角色非常简单.就是要去为应用开发人员节省时间,让我们不用话费太多精力在一些不必要的
-
使用JS操作文件(FileReader读取--node的fs)
目录 JS读取文件 FileReader 文档 事件和方法 基本使用 事件处理 node操作文件(readfile) 文件读取是一个异步操作 使用Promise 文件的写入 JS读取文件 FileReader FileReader 对象允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用 File 或 Blob 对象指定要读取的文件或数据. 文档 FileReader 事件和方法 事件处理 FileReader.onabort 处理abort事件.该事件在读取操作被
-
node.js事件循环机制及与js区别详解
目录 一.是什么 二.流程 三.题目 一.是什么 在浏览器事件循环(opens new window)中,我们了解到javascript在浏览器中的事件循环机制,其是根据HTML5定义的规范来实现 而在NodeJS中,事件循环是基于libuv实现,libuv是一个多平台的专注于异步IO的库,如下图最右侧所示: 上图EVENT_QUEUE 给人看起来只有一个队列,但EventLoop存在6个阶段,每个阶段都有对应的一个先进先出的回调队列 二.流程 上节讲到事件循环分成了六个阶段,对应如下: tim
-
require.js 加载 vue组件 r.js 合并压缩的实例
准备: vue.js 原本是学习vue组件 require.js 然后想到用require 加载 r.js 文件太多 合并 文件目录 忽略部分文件及文件夹 一.先说vue 组件 先引入vue 再引入vue组件 Vue.extend({}) 定义组件 template data methods Vue.component(),注册组件的标签,标签在html中是一个挂载点 new Vue() 进行实例化 index.html // css引入 略 <div id="header"&g
-
js复制内容到剪贴板代码,js复制代码的简单实例
如下所示: <script type="text/JavaScript"> function jsCopy(){ var e=document.getElementById("contents");//对象是contents e.select(); //选择对象 document.execCommand("Copy"); //执行浏览器复制命令 } </script> <textarea id="conte
-
JS 中document.write()的用法和清空的原因浅析
可能很多朋友都遇到过这样的情况,那就是使用document.write()函数向网页中写内容的时候,会把文档中的原来的内容给清空,这一点对于初学者来说算是一个困扰,下面就介绍一下为什么会出现这种情况,当然也就知道如何避免此种情况的发生了. 先看一段代码实例: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <title>Document</title> &
-
JS文件中加载jquery.js的实例代码
本文表述了JS文件中加载jquery.js的方法,具有很好的参考价值,希望对大家有所帮助. 最近有一个需求: 1.在一个html中只能引入一个JS文件 不能有JS代码和其他JS文件的引入: 2.这个JS文件中 还要引入其他的JS文件: 3.所有JS功能都写在这个JS文件中 这些代码用到了jquery相关的东东 所以这里第一个需要解决的就是怎么引入jquery.js. 在网上搜索了很多方法都不太实用,由于我自己离开WEB多年 最后向朋友询问得到以下代码: 1.js // by firefoxmmx
-
JS拖拽排序插件Sortable.js用法实例分析
本文实例讲述了JS拖拽排序插件Sortable.js用法.分享给大家供大家参考,具体如下: 最近由于项目功能设计的原因,需要对table中的行实现拖拽排序功能,找来找去发现Sortable.js能很好的满足这个需求,而且它还是开源的,于是乎就开始学习使用Sortable.js,再然后就有了这篇文章. 特点: 轻量级但功能强大 移动列表项时有动画 支持触屏设备和大多数浏览器(IE9及以下除外) 支持单个列表容器内部拖拽排序,也支持两个列表容器互相拖拽排序 支持拖放操作和可选择的文本 非常友善的滚动
-
前端必备插件之纯原生JS的瀑布流插件Macy.js
这是一款非常轻量级的纯原生JS的瀑布流插件--Macy.js,如今图片和视频网站非常多,非常适应瀑布流这样的布局方式来呈现给用户. 这款流布局JS插件仅有4KB的大小,可以说是非常轻量级的哦.配置也比较方便,用户可以自定义间距.列数,还有个特色就是可以定义不同屏幕分辨率,不同列数,这个应用在响应式网页设计是非常方便的. 所以,选择一款简单易用的瀑布流js插件,可以让前端工程师快速开发出漂亮的瀑布流Pc网站和react 后台项目. 瀑布流布局代表网站就是 花瓣网,设计师一定不会陌生的设计网站. 插
-
2014年最火的Node.JS后端框架推荐
Node.js框架是可以帮助你建立网站应用服务的javascript框架.它可以帮助你更快地开发Web应用 Node.js 是基于Chrome的JavaScript运行环境.可方便地构建快速.可扩展的网络应用.节点. 当涉及到Web应用程序的开发,你就需要JS框架,加快你的开发过程. Node.js有非常多不同类型的框架,如MVC框架,REST API和generators,全栈框架,大量的服务器库,它完全能够提供Web服务,无需使用Apache等外部软件. Node.js使用谷歌的V8 Jav
-
为什么Node.js会这么火呢?Node.js流行的原因
Node.js是一项服务器技术,它用来构建和运行Web应用,这和ASP.NET,Ruby on Rails或Spring框架做的工作是类似 的.它使用JavaScript作为主要的开发语言,有一个自带的轻量级Web服务器,还有Node包管理(NPM)的大量插件,你就可以按照你自己的需 求来塑造Web应用,像添加MVC特性,加入Restful服务,OAuth或SSL安全性等等. 语言的重复使用 像ASP.NET或Spring这样的技术需要开发人员学习一门新的服务端语言,比如C#,VB.NET或者J
随机推荐
- php实现的验证码文件类实例
- MongoDB系列教程(三):Windows中下载和安装MongoDB
- asp.net 生成数字和字母组合的随机数
- js导出table数据到excel即导出为EXCEL文档的方法
- Javascript+CSS3实现进度条效果
- 教你如何用php实现LOL数据远程获取
- php实现mysql数据库备份类
- python控制台中实现进度条功能
- golang实现sql结果集以json格式输出的方法
- Chrome不支持showModalDialog模态对话框和无法返回returnValue问题的解决方法
- VSFTPD配置(匿名——本地用户——虚拟用户)
- C++/Php/Python 语言执行shell命令的方法(推荐)
- jQuery实现的兼容性浮动层示例
- 常见JS效果之图片减速度滚动实现代码
- 超实用的javascript时间处理总结
- JavaScript实现的数字与字符串转换功能示例
- SWT(JFace)体验之圆环状(戒指型)
- 使用C#的aforge类库识别验证码实例
- 轻松掌握python设计模式之访问者模式
- 使用Libmicrohttpd搭建内嵌(本地)服务器的方法