写点什么

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

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

关注

评论

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

《小米创业思考》之三:互联网七字诀

郭明

读书笔记

如何重新评估未完成的工作

ShineScrum

Scrum 敏捷 DoD 未完成的工作

【FAQ】接入华为应用内支付服务常见问题解答

HarmonyOS SDK

Hugging Face:成为机器学习界的“GitHub”

OneFlow

神经网络 机器学习

Java进阶(八)Java加密技术之对称加密、非对称加密、不可逆加密算法

No Silver Bullet

对称加密 非对称加密 9月月更 不可逆加密

消除 JavaScript 的一些“异味”

掘金安东尼

JavaScript 前端 9月月更

LeetCode-20. 有效的括号(java)

bug菌

9月日更 Leet Code 9月月更

New Wireless Technologies to Help Meet Aviation Demands IPQ6018/IPQ6000/IPQ6010/Wallys

wallys-wifi6

IPQ6010 ipq6018 IPQ6000

库调多了 都忘了最基础的概念-进程/线程篇

知识浅谈

9月月更 线程与进程

我用WireShark结合一款神器成功绘画出入侵者的地图!

wljslmz

Wireshark 9月月更

LeetCode-14. 最长公共前缀(java)

bug菌

9月日更 Leet Code 9月月更

Java基础——编码命名规范

守夜人st

java; 编程语言‘ 9月月更

数据中台改名DaaS平台?究竟什么是数据即服务(DaaS)?

雨果

DaaS数据即服务

美团前端一面常见面试题

beifeng1996

JavaScript 前端

自适应熔断原理分析与源码解读

万俊峰Kevin

Go golang 熔断 go-zero 限流熔断

Spring 源码阅读 29:基于 XML 配置初始化 Spring 上下文过程总结(10+详细流程图)

Java快了!

xml

边缘服务网格 osm-edge 数据平面基准测试

Flomesh

Service Mesh 服务网格

NFT商城开发——NFT数字收藏平台开发解决方案

开源直播系统源码

NFT 元宇宙 数字藏品 数字藏品开发

数据库的视图怎么用?

阿柠xn

MySQL 运维 视图 数据库· 9月月更

资深技术笔译总结的这7条建议,看完提PR效率倍增

OpenHarmony开发者

OpenHarmony

保利威重磅开启「828 B2B企业节 · 专场峰会 」!

科技怪咖

嗖的一下就码出一个CLI

蛋先生DX

typescript 前端 命令行 cli 代码生成

云图说丨初识分布式消息服务Kafka版

华为云开发者联盟

云计算 企业号九月金秋榜

京东前端面试题

loveX001

JavaScript 前端

Linux系统安装MySQL

MySQL Centos 7 navicat 9月月更

看得懂又好看的数学书,万人亲测的硬核教程!

博文视点Broadview

Spring5源码14-SpringMVC-HandlerMapping

Java快了!

springmvc

SPL工业智能:发现时序数据的异常

石臻臻的杂货铺

SPL 9月月更

从系统架构分析安全问题及应对措施

京东科技开发者

网络安全 安全 系统架构 信息安全 ssl

喜提“双黄蛋” | 旺链科技亮相2022世界人工智能大会

旺链科技

区块链 产业区块链 企业号九月金秋榜 人工智能大会

Karmada v1.3:更优雅 更精准 更高效

华为云开发者联盟

容器 云原生 后端 华为云 企业号九月金秋榜

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