写点什么

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

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

关注

评论

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

【1024】程序员节丨致敬所有技术布道师

MobTech袤博科技

1024程序员节 MobTech袤博科技

实现Promise的原型方法--前端面试能力提升

helloworld1024fd

JavaScript

2022 XDR网络安全运营新理念峰会完整嘉宾阵容公布!

未来智安XDR SEC

网络安全

盘它!基于CANN的辅助驾驶AI实战案例,轻松搞定车辆检测和车距计算!

华为云开发者联盟

人工智能 华为云 辅助驾驶 企业号十月 PK 榜

web前端开发培训女生学习怎么样

小谷哥

对象存储只能按文件名搜索,你out了吧

华为云开发者联盟

云计算 存储 华为云 企业号十月 PK 榜

Checkout.com支付解决方案,助力跨境电商领跑购物季

科技热闻

React源码解读之React Fiber

flyzz177

React

vue面试之Composition-API响应式包装对象原理

bb_xiaxia1998

Vue

长安链源码分析之交易过程分析(7)

Springboot 一行代码实现文件上传 20个平台!少写代码到极致

程序员小富

Java springboot 文件上传

使用注解 @requires 给 SAP CAP CDS 模型添加权限控制

汪子熙

云原生 CAP Cloud SAP 10月月更

请求投放个性化广告时,如何征得用户同意?

HarmonyOS SDK

广告

软件测试面试真题 | MYSQL中删除语句有哪些?

测试人

sql 软件测试 面试题 测试开发

RocketMQ Flink Catalog 设计与实践

阿里云大数据AI技术

sql 大数据 flink 分布式计算 企业号十月PK榜

深度解析9种ScheduledThreadPoolExecutor的构造方法

华为云开发者联盟

高并发 开发 华为云 源代码 企业号十月 PK 榜

JUC中的AQS底层详细超详解

华为云开发者联盟

Java 开发 华为云 企业号十月 PK 榜

大数据培训学习就业难吗

小谷哥

百度搜索业务交付无人值守实践与探索

百度Geek说

Pytho 企业号十月 PK 榜 智能测试

高可用和负载均衡的三大区别详细讲解-行云管家

行云管家

高可用 高可用集群 ha

前端培训机构包就业靠谱吗?

小谷哥

开源软件供应链攻击激增430%,供应链安全不容小觑丨行业报告解读

SEAL安全

开源 DevOps 行业报告 软件供应链安全

长安链源码分析之交易过程分析(8)

React源码解读之任务调度

flyzz177

React

java开发培训机构要怎么谨慎选择

小谷哥

软件测试 | 测试开发 | 如何确保API的稳定性与正确性?你只需要这一招

测吧(北京)科技有限公司

测试

腾讯前端常考vue面试题整理

bb_xiaxia1998

Vue

java培训哪家比较靠谱

小谷哥

学会这10种定时任务,我有点飘了

小小怪下士

Java 程序员

日报周报是“毒瘤”还是“良药”?

优秀

周报 日报

阿里云移动测试-远程真机篇

移动研发平台EMAS

性能测试 app测试 移动测试 远程真机

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