写点什么

选择 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:334006
用户头像

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

关注

评论

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

让你怀疑人生的重载和重写的区别

艾小仙

Java 编程语言

LeetCode题解:90. 子集 II,迭代+位运算,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

阿里五位大佬总结的操作系统+程序员必知硬核知识大全离线版pdf火了,在Github上获赞89.3K+,现已开源!

996小迁

架构 面试 操作系统 计算机

第七周课后练习

饭桶

鬼知道我经历了什么!全靠这份999页Java面试宝典,我刚拿到美团offer!

Java架构追梦

Java 程序员 架构 面试 美团

高频面试题:秒杀场景设计

艾小仙

Java 面试 高并发 秒杀

微信小程序接口测试时appid为空如何解决

测试人生路

微信小程序 接口测试

零基础IM开发入门(四):什么是IM系统的消息时序一致性?

JackJiang

谈谈项目中主动full gc的一些问题

AI乔治

Java 编程 架构 JVM GC

JUC 之ThreadPoolExecutor实现原理分析

AI乔治

Java 架构 jdk 线程

音视频社交的应用和优势

anyRTC开发者

音视频 WebRTC 语音 直播 RTC

AI 科学家带你快速 Get 人工智能最热技术

京东科技开发者

人工智能

LeetCode题解:90. 子集 II,迭代,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

Java先驱者发布最新Java全栈面试“秘籍”,助力你吃透Java新特性!

Java架构追梦

Java 学习 编程 架构 面试

云原生时代下数据库管理工具的变革

BinTools图尔兹

数据库 sql 云原生 数据治理 工具软件

百万年薪技术大佬的读书之旅

四猿外

Java 书籍推荐 书单 书单推荐 书籍

SpringBoot-技术专题-Websocket消息推送和广播消息推送

码界西柚

震惊!线上四台机器同一时间全部 OOM,到底发生了什么?

AI乔治

Java 架构

JUC之 FutureTask 源码与工作原理分析

AI乔治

Java 编程 架构 jdk 线程

第七周课后总结

饭桶

全国区块链信息服务备案超千个

CECBC

区块链 金融

Appium常用操作之「微信滑屏、触屏操作」

清菡软件测试

跟Kafka学技术系列之时间轮

AI乔治

Java 编程 架构

SpringBoot- 技术专题 -Websocket+Nginx出现404问题

码界西柚

《Among Us》火爆全球,实时语音助力派对游戏开启第二春

ZEGO即构

语音 游戏 RTC

React Ref 如何使用(译)

西贝

Java 翻译 React Hooks Ref

JVM垃圾回收与一次线上内存泄露问题分析和解决过程

AI乔治

Java 编程 架构 JVM 内存泄漏

低代码开发平台的敏捷之力

雯雯写代码

敏捷开发 低代码 信息化

移动端堆栈关键行定位的新思路

移动研发平台EMAS

移动应用 应用崩溃 崩溃分析

腾讯安全披露多个0day漏洞,Linux系统或陷入“被控”危机

架构师训练营 1 期 - 第六周 - 技术选型2

三板斧

极客大学架构师训练营

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