写点什么

选择 Nodejs 的 N 个理由

  • 2014-09-25
  • 本文字数:861 字

    阅读完需:约 3 分钟

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 对象的文档数据库时,这会极大地简化数据库和用户界面之间的数据传递任务。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-09-25 07:334237
用户头像

发布了 256 篇内容, 共 100.9 次阅读, 收获喜欢 12 次。

关注

评论

发布
暂无评论
发现更多内容

使用JDBC操作SAP云平台上的HANA数据库

汪子熙

JDBC Cloud SAP 11月日更

SymmetricDS 数据库双向同步开源软件入门

Java 程序员 后端

基于Fiber的React Diff算法源码分析

贝壳大前端技术团队

Fiber React Diff

官宣!Apache ShardingSphere 5.0.0 正式发布

SphereEx

Java 数据库 Apache ShardingSphere

SSM框架示例(适合新手)(1)

Java 程序员 后端

Swagger 3

Java 程序员 后端

告别AI模型黑盒子:可解释的神经网络研究

索信达控股

机器学习 模型 可解释模型 可解释机器学习

System

Java 程序员 后端

TCP面试相关总结

Java 程序员 后端

Ubuntu16安装Nvidia驱动(GTX1060显卡)

Java 程序员 后端

windows 下JDK12的安装过程

Java 程序员 后端

SQL Server 2008中的分区表(二):如何添加、查询

Java 程序员 后端

Tomcat性能调优

Java 程序员 后端

Vue学习之基础入门

Java 程序员 后端

Win10安装Tomcat服务器与配置环境变量

Java 程序员 后端

this与super关键字(阿里巴巴面试竟然问道这个了……今天把它盘透彻了!

Java 程序员 后端

SSM框架示例(适合新手)

Java 程序员 后端

Tomcat 多端口,多虚拟主机配置方法

Java 程序员 后端

volatile关键字的原理和要避免的误区

Java 程序员 后端

SQL的单表查询

Java 程序员 后端

windows7 本地搭建ELK 收集项目运行日志

Java 程序员 后端

两强联手,百度智能云和中电互联打造自主可控工业互联网联合实验室

百度大脑

人工智能 百度

T-SQL——数据透视和逆透视

Java 程序员 后端

Volatile:内存屏障原理应该没有比这篇文章讲的更清楚了

Java 程序员 后端

SQL Server 高性能写入的一些总结

Java 程序员 后端

Android技术分享| 【自习室】自定义View代替通知动画(2)

anyRTC开发者

android 音视频 WebRTC 移动开发 自定义view

TLS加密远程连接Docker

Java 程序员 后端

tomcat的maxThreads、acceptCount,对高并发的影响

Java 程序员 后端

Vim,人类史上最好用的文本编辑器!从此以后你就是一个善良的极客!

Java 程序员 后端

智能边缘框架Baetyl,为各行业落地实践提供安全机制

百度大脑

人工智能 百度

SQL Server 2008中的分区表(二):如何添加、查询(1)

Java 程序员 后端

选择Nodejs的N个理由_架构/框架_马德奎_InfoQ精选文章