为什么要选择Nodejs?Nodejs有什么好处?

2015-11-12 admin

什么?JavaScript还能用作服务器编程!

Caleb Madrigal是来自美国密尔沃基市的一名软件顾问。四年前,他在听说“将JavaScript用作服务器端语言”这样的说法时,认为那是一个荒唐的想法。有那么多服务器端语言可供选择,为什么要选JavaScript?这是他当时的想法。但现在,他在当前的项目中选用了JavaScript/Node.js。他近日撰文对自己的这一转变进行了解释。

首先,许多顶级企业都使用了Node.js,并且效果非常好,其中包括PayPal、Walmart、Ebay、Groupon和LinkedIn。这些企业在生产环境中大量使用了Node.js。Madrigal举了PayPal的例子。PayPal针对他们网站上其中一个流量最大的应用,对比了它的Node.js版本和Java版本,发现前者在多个方面优于后者,并最终决定由Java切换到JavaScript。InfoQ对此有过报道。

其次,Node.js有一个很棒的包管理系统NPM。通过运行“npm install 包名”几乎可以安装任何包/库。另外,通过package.json文件可以跟踪依赖关系。因此,Node.js库很容易克隆,运行“npm install”可以安装所有的依赖关系。

再次,Node.js社区异常活跃,总是有新的库产生。这些库非常好用,使JavaScript成为一个非常高效的平台。

然后是Node.js 的REPL(read-evaluate-print loop)命令行。开发人员只需要在终端中输入“node”,就可以对Node.js进行逐行测试。

最后,Node.js有一个很重要的特性:非阻塞函数。这就是为什么我们会在Node.js的代码中看到大量的callbacks和promises。这种设计模式给Node.js带来了非常优异的性能。

此外,Node.js的最大一个优点是:它是JavaScript。任何人都知道JavaScript,所以使用Node.js不需要学习一门新语言。有了它,开发人员可以只使用一种语言,浏览器端用JavaScript,服务器端用Node.js。在使用像MongoDB和CouchDB这样存储JSON对象的文档数据库时,这会极大地简化数据库和用户界面之间的数据传递任务。

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处。

转载请注明:文章转载自 JavaScript中文网 [https://www.javascriptcn.com]

本文地址:https://www.javascriptcn.com/read-184.html

文章标题:为什么要选择Nodejs?Nodejs有什么好处?

相关文章
JavaScript是什么
JavaScript 是世界上最流行的编程语言。 这门语言可用于 HTML 和 web,更可广泛用于服务器、PC、笔记本电脑、平板电脑和智能手机等设备。 JavaScript,一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置...
2015-11-16
何为闭包?有关JS闭包的一些理解
简单一点的说:闭包就是能够读取其他函数内部变量的函数。那如何实现读取其它函数内部变量呢,大家都知道在JavaScript中内部函数可以访问其父函数中的变量,那如果将内部函数返回是不是代表能够通过它访问其父函数中的变量了呢,闭包的原理事实上就...
2015-11-11
关于Ajax应用开发需要注意的事项
接触Ajax,那时候的Ajax支持还不是很好,都要涉及底层,没有现成的框架给你调用。现在把常见的问题列举如下。 [b]1、编码问题[/b] 注意AJAX要取的文件是UTF-8编码的。GB2312编码传回BROWSE后中文会乱码。如果用VBS...
2015-11-11
WebSocket断开原因分析,再也不怕为什么又断开了
阅读原文:https://wdd.js.org/websocket-… 1. 把错误打印出来 WebSocket断开的原因有很多,最好在WebSocket断开时,将错误打印出来。 在线demo地址:https://wdd.js.org/we...
2018-04-25
2015年将会有大量基于HTML5和JS的WEB应用
随着HTML5的定稿,以及JS的迅速发展,我们有理由相信,在接下来的一年里,将会涌现出大量的WEB应用,网站的表现形式将不再仅仅局限于过去的形式,必将在2015年引来一次重大改革! ...
2015-11-12
freemarker判断对象是否为空的方法
FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP。它不仅可以用作表现层的实现技术,而且还可以用于生成XML,JSP或Java 等。 freemarker中显示某对象使用${name}. 但如果nam...
2017-03-27
为什么AngularJS能够成功?
AngularJS 为什么成功了? 写在前面的话 继上一篇总结之后, 觉得必须补充一下 AngularJS 与 Ionic 的技术性话题 于是, 连夜写了这第一篇. 讲述了 AngularJS 与其他对手之间的优与缺. 我有任何理解错误, ...
2015-11-12
线程有什么用处? 为什么有些东西注定不会流行
多线程的领域也许只有一个: 图形学. 我们以一个游戏来说明 @ |___|___|___|___|___ @是一个玩家, 往前走, 每一个___是1米. 每当@走到1米的时候, 会绘制一个蘑菇*给玩家看. @|___*___|___|___...
2015-11-12
Easyui Tree获取当前选择节点的所有顶级父节点
只支持四层目录结构,比较笨的一个方法 JS代码 var node = $('#tree').tree('getSelected'); //获取该节点所有父节点 ...
2017-03-17
回到顶部