您好,欢迎访问一九零五行业门户网

nodejs 能做什么

nodejs能做的事情:1、实现程序员的全栈开发;2、统一公共类库,将代码标准化;3、异步编程;4、处理io密集型应用;5、构建复杂系统;6、实现对于内存堆栈的监控系统等等。
本文操作环境:windows7系统、nodejs10.16.2、dell g3电脑。
nodejs 介绍:
node.js 是一个基于 chrome v8 引擎的 javascript 运行环境。node.js 使用了一个事件驱动、非阻塞式 i/o 的模型,使其轻量又高效。node.js 的包管理器 npm,是全球最大的开源库生态系统。
nodejs 能做什么?
1. nodejs基于javascript语言,不用再单独新学一门陌生的语言,从而减低了学习的门槛。同时,javascript语言在web前端开发中至 关重要,特别html5的应用必须要使用,所以前后台统一语言,不仅可以实现程序员的全栈开发,还可以统一公共类库,代码标准化。单凭这一 点,nodejs就已经赢得市场的青睐了。
2. nodejs并没有重新开发运行时环境,而是选择了目前最快的浏览器内核v8做为执行引擎,保证了nodejs的性能和稳定性。
3. nodejs的开发非常高效,而且代码简单,得意于nodejs的单线程机制。而nodejs的另一个特点异步编程,让nodejs处理io密集型应用有了明显的优势。个人感觉,用nodejs比java做web开发要高效10倍,比php的代码还要简单。
4. nodejs的社区在壮大,不仅包的数量在快速增加,而且包的质量也要明显好于其他语言的。很多明星级的包,都是简单而灵巧的,为了开发者的使用习惯而设 计。我最常用到的工具包,如socket.io, moment.js, underscore.js, async.js, express.js, bower.js, grunt.js, forever.js…,确实在改变我以前的编程习惯。
当然,除了我使用nodejs的理由,很多公司也都有自己的使用理由。
ebay选择nodejs的理由,可以归纳为以下4点:
动态语言:开发效率非常高,并有能力构建复杂系统,如http://ql.io。
性能和i/o负载:nodejs非常好的解决了io密集的问题,通过异步io来实现。
连接的内存开销:每个node.js进程可以支持超过12万活跃的连接,每个连接消耗大约2k的内存。
操作性:实现了nodejs对于内存堆栈的监控系统。
15个nodejs应用场景
我们已经对nodejs有了初步的了解,接下来看看nodejs的应用场景。
1 web开发:express + ejs + mongoose/mysql
express 是轻量灵活的nodejs web应用框架,它可以快速地搭建网站。express框架建立在nodejs内置的http模块上,并对http模块再包装,从而实际web请求处理的功能。
ejs是一个嵌入的javascript模板引擎,通过编译生成html的代码。
mongoose 是mongodb的对象模型工具,通过mongoose框架,可以进行访问mongodb的操作。
mysql 是连接mysql数据库的通信api,可以进行访问mysql的操作。
通常用nodejs做web开发,需要3个框架配合使用,就像java中的ssh。
2 rest开发:restify
restify 是一个基于nodejs的rest应用框架,支持服务器端和客户端。restify比起express更专注于rest服务,去掉了express中的template, render等功能,同时强化了rest协议使用,版本化支持,http的异常处理。
3 web聊天室(im):express + http://socket.io
socket.io一个是基于nodejs架构体系的,支持websocket的协议用于时时通信的一个软件包。socket.io 给跨浏览器构建实时应用提供了完整的封装,socket.io完全由javascript实现。
4 web爬虫:cheerio/request
cheerio 是一个为服务器特别定制的,快速、灵活、封装jquery核心功能工具包。cheerio包括了 jquery核心的子集,从jquery库中去除了所有dom不一致性和浏览器不兼容的部分,揭示了它真正优雅的api。cheerio工作在一个非常简 单,一致的dom模型之上,解析、操作、渲染都变得难以置信的高效。基础的端到端的基准测试显示cheerio大约比jsdom快八倍(8x)。 cheerio封装了@fb55兼容的htmlparser,几乎能够解析任何的 html 和 xml document。
5 web博客:hexo
hexo 是一个简单地、轻量地、基于node的一个静态博客框架。通过hexo我们可以快速创建自己的博客,仅需要几条命令就可以完成。
发布时,hexo可以部署在自己的node服务器上面,也可以部署github上面。对于个人用户来说,部署在github上好处颇多,不仅可以省 去服务器的成本,还可以减少各种系统运维的麻烦事(系统管理、备份、网络)。所以,基于github的个人站点,正在开始流行起来….
6 web论坛: nodeclub
node club 是用 node.js 和 mongodb 开发的新型社区软件,界面优雅,功能丰富,小巧迅速, 已在node.js 中文技术社区 cnode 得到应用,但你完全可以用它搭建自己的社区。
7 web幻灯片:cleaver
cleaver 可以生成基于markdown的演示文稿。如果你已经有了一个markdown的文档,30秒就可以制作成幻灯片。cleaver是为hacker准备的工具。
8 前端包管理平台: bower.js
bower 是 twitter 推出的一款包管理工具,基于nodejs的模块化思想,把功能分散到各个模块中,让模块和模块之间存在联系,通过 bower 来管理模块间的这种联系。
9 oauth认证:passport
passport项 目是一个基于nodejs的认证中间件。passport目的只是为了“登陆认证”,因此,代码干净,易维护,可以方便地集成到其他的应用中。web应用 一般有2种登陆认证的形式:用户名和密码认证登陆,oauth认证登陆。passport可以根据应用程序的特点,配置不同的认证机制。本文将介绍,用户 名和密码的认证登陆。
10 定时任务工具: later
later 是一个基于nodejs的工具库,用最简单的方式执行定时任务。later可以运行在node和浏览器中。
11 浏览器环境工具: browserify
browserify 的出现可以让nodejs模块跑在浏览器中,用require()的语法格式来组织前端的代码,加载npm的模块。在浏览器中,调用browserify编译后的代码,同样写在<script>标签中。
用 browserify 的操作,分为3个步骤。1. 写node程序或者模块, 2. 用browserify 预编译成 bundle.js, 3. 在html页面中加载bundle.js。
12 命令行编程工具:commander
commander 是一个轻巧的nodejs模块,提供了用户命令行输入和参数解析强大功能。commander源自一个同名的ruby项目。commander的特性:自 记录代码,自动生成帮助,合并短参数(“abc”==“-a-b-c”),默认选项,强制选项,命令解析,提示符。
13 web控制台工具: tty.js
tty.js 是一个支持在浏览器中运行的命令行窗口,基于node.js平台,依赖socket.io库,通过websocket与linux系统通信。特性:支持多 tab窗口模型; 支持vim,mc,irssi,vifm语法; 支持xterm鼠标事件; 支持265色显示; 支持session。
14 客户端应用工具: node-webwit
node-webkit 是nodejs与webkit技术的融合,提供一个跨windows、linux平台的客户端应用开发的底层框架,利用流行的web技术 (node.js,javascript,html5)来编写应用程序的平台。应用程序开发人员可以轻松的利用web技术来实现各种应用程序。node- webkit性能和特色已经让它成为当今世界领先的web技术应用程序平台。
15 操作系统: node-os
nodeos 是采用nodejs开发的一款友好的操作系统,该操作系统是完全建立在linux内核之上的,并且采用shell和npm进行包管理,采用nodejs不 仅可以很好地进行包管理,还可以很好的管理脚本、接口等。目前,docker和vagrant都是采用nodeos的首个版本进行构建的。
推荐学习:《node视频教程》
以上就是nodejs 能做什么的详细内容。
其它类似信息

推荐信息