面对一个新技术,多问几个为什么总是好的。既然 PHP、Python、Java 都可以用来进行后端开发,为什么还要去学习 Node.js?至少我们应该知道在什么场景下,选择 Node.js 更合适。
为什么要安装nodejs?
Nodejs的开发非常高效,而且代码简单,得益于Nodejs的单线程机制。而Nodejs的另一个特点异步编程,让Nodejs处理IO密集型应用有了明显的优势。
Node.js有一个很棒的包管理系统NPM。
在讨论 Node.js 时,一件绝对不应该被忽略的事是支持使用内置的 npm 工具进行包管理,默认情况下每个 Node.js 环境都会安装。 npm 模块的概念非常类似于 Ruby Gems:一组可通过在线存储库轻松安装,具有版本和依赖关系管理的可重用组件,。
通过运行“npm install 包名”几乎可以安装任何包/库。另外,通过package.json文件可以跟踪依赖关系。因此,Node.js库很容易克隆,运行“npm install”可以安装所有的依赖关系。
可以在 npm 网站上找到已打包模块的完整列表,也可以使用自动与 Node.js 一起安装的 npm CLI 工具进行访问。模块生态系统对所有人开放,任何人都可以发布自己的模块,发布的模块将出现在 npm 存储库中。有关 npm 的简介,请参阅初学者指南,以及 npm 发布教程中关于发布模块的部分。
一些很有用的 npm 模块是:
express —— Express.js,一个受 Sinatra 启发的 Node.js Web 开发框架,当今大多数 Node.js 应用程序的事实标准。
hapi —— 一个模块化的且非常易于使用的以配置为中心的框架,用于构建 Web 和服务应用
connect —— Connect 是 Node.js 的可扩展 HTTP 服务器框架,提供了一系列称为中间件的高性能“插件”作为Express的基础。
socket.io 和 sockjs —— 今天最常见的两个 websockets 服务器端组件。
pug(以前叫 Jade)—— 受 HAML 启发的流行模板引擎之一,Express.js 中的默认选项。
mongodb 和 mongojs —— MongoDB 包装器,为 Node.js 中的 MongoDB 对象数据库提供 API。
redis —— Redis 客户端。
forever—— 可能是确保给定 node 脚本连续运行的最常用实用程序。在遇到意外故障时,将 Node.js 的进程保持在生产状态。
bluebird —— 功能齐全的 Promises/A+ 实现,性能非常出色
moment —— 用于解析、验证、操作和格式化日期的轻量级 JavaScript 日期库。
列表还在不断增长。那里有很多有用的包,可供所有人使用。
Node.js 适合以下场景:
实时性应用,比如在线多人协作工具,网页聊天应用等。以 I/O 为主的高并发应用,比如为客户端提供 API,读取数据库。流式应用,比如客户端经常上传文件。前后端分离。
实际上前两者可以归结为一种,即客户端广泛使用长连接,虽然并发数较高,但其中大部分是空闲连接。
Node.js 也有它的局限性,它并不适合 CPU 密集型的任务,比如人工智能方面的计算,视频、图片的处理等。
Node对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好。V8引擎执行Javascript的速度非常快,性能非常好。
Node是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。
Node的优点:
Node作为一个新兴的前端框架,后台语言,有很多吸引人的地方:
RESTful API
单线程
Node可以在不新增额外线程的情况下,依然可以对任务进行并发处理 —— Node.js是单线程的。它通过事件循环(event loop)来实现并发操作,对此,我们应该要充分利用这一点 —— 尽可能的避免阻塞操作,取而代之,多使用非阻塞操作。
非阻塞IO
V8虚拟机
事件驱动
以上就是为什么要安装nodejs?的详细内容,更多请关注易知道|edz.cc其它相关文章!