【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

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

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

关注

评论

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

云原生(十一) | Kubernetes篇之Kubernetes原理与安装

Lansonli

云原生 k8s 7月月更

C#入门系列(二十八) -- LINQ的查询语法

陈言必行

7月月更

iOS中#define和const

NewBoy

ios 前端 移动端 iOS 知识体系 7月月更

Qt|模仿文字浮动字母

中国好公民st

qt 7月月更

.so 将c++转化为安卓可使用的数据

小肉球

qt 7月月更

Vim到底可以配置得多漂亮?

Jackpop

QDS08 curl 安装

耳东@Erdong

curl qds 7月月更

JavaScript 中如何取消请求

掘金安东尼

JavaScript 前端 7月月更

自研的数据产品迭代了一年多,为什么不买第三方商业数据平台产品呢?

松子(李博源)

数据中台 数据产品经理 数字化转型 数据产品

代码版本控制用SVN还是Git好?

Jackpop

Python干货——内置函数

Java学术趴

7月日更

C# 线程锁和单多线程简单使用

IC00

C# 7月月更

腾讯云获国际专业流媒体测评肯定:三大场景下视频编码性能全部最优

科技热闻

工业物联网中的时序数据

CnosDB

物联网 时序数据库 开源社区 CnosDB 工业数据

大规模团队中的敏捷测试实践

刘冉

敏捷测试

算法题每日一练---第6天:李白打酒

知心宝贝

算法 前端 后端 7月月更

这些 C++ 开源代码,简直绝了!

Jackpop

详解一次SQL优化

了不起的程序猿

java程序员 sql SQL优化

谈谈文字两端对齐的css问题

南极一块修炼千年的大冰块

7月月更

java零基础入门-异常、线程(完结篇)

喵手

Java 7月月更

git pull 和 git fetch到底什么区别?

Jackpop

LeetCode-83. 删除排序链表中的重复元素(java)

bug菌

Leet Code 7月月更

【刷题记录】19. 删除链表的倒数第 N 个结点

WangNing

7月月更

百变小精灵,CRMEB Java 单商户系统也要当!

CRMEB

OSI七层模型有哪七层?每一层分别有啥作用,这篇文章讲的明明白白!

wljslmz

OSI七层协议 网络技术 7月月更

K3S - 轻量级Kubernetes集群

mengzyou

DevOps k8s k3s

Java 虚拟机的概念是怎么来的

HoneyMoose

软件质量体系之思

刘冉

质量体系

数据治理浅析

五分钟学大数据

数据治理 7月月更

前端性能优化之请求优化

南城FE

性能优化 前端 7月月更

IntelliJ IDEA,有点强!

Jackpop

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