node入门解读(grunt,npm)

node.js
是什么?参考出处http://www.ibm.com/developerworks/cn/opensource/os-nodejs/index.html
目标:旨在提供一种简单的构建可伸缩网络程序的方法
问题:服务器能够处理的并发连接的最大数量
解决方法:更改连接到服务器的方式
简述: 每个连接发射一个在 Node 引擎的进程中运行的事件,而不是为每个连接生成一个新的 OS 线程(并为其分配一些配套内存)。Node 声称它绝不会死锁,因为它根本不允许使用锁,它不会直接阻塞 I/O 调用。Node 还宣称,运行它的服务器能支持数万个并发连接.
好处:Node 非常适合以下情况:在响应客户端之前,您预计可能有很高的流量,但所需的服务器端逻辑和处理不一定很多。
典型示例:RESTful API,Twitter 队列,电子游戏统计数据
node模块:使用npm下载(node package module)
使用:Node 本身运行 V8 JavaScript,事件驱动编程。它允许使用匿名函数和闭包,事件发生时调用的回调函数可以在捕获事件处进行编写,只需监听事件,编写一个回调函数。


案例Node 随机数字生成器 random.js
var http = require("http");
var url = require("url");
http.createServer(function(request, response) {
     response.writeHead(200, {"Content-Type": "text/plain"});
     var params = url.parse(request.url, true).query;
     var input = params.number;
     var numInput = new Number(input);
     var numOutput = new Number(Math.random() * numInput).toFixed(0);
     response.write(numOutput);
     response.end();
}).listen(80);


console.log("Random Number Generator Running...");
启动命令  node random.js
结果
root@ubuntu:/home/moila/ws/mike#
Random Number Generator Running...
监听http://localhost/?number=27浏览器重新载入得到随机数字


优缺点?参考出处http://blog.csdn.net/xiaemperor/article/details/38234979
特点
1. 它是一个Javascript运行环境
2. 依赖于Chrome V8引擎进行代码解释
3. 事件驱动
4. 非阻塞I/O
5. 轻量、可伸缩,适于实时数据交互应用
6. 单进程,单线程
优点
1. 高并发(最重要的优点)
2. 适合I/O密集型应用
缺点
1. 不适合CPU密集型应用;CPU密集型应用给Node带来的挑战主要是:由于JavaScript单线程的原因,如果有长时间运行的计算(比如大循环),将会导致CPU时间片不能释放,使得后续I/O无法发起;
解决方案:分解大型运算任务为多个小任务,使得运算能够适时释放,不阻塞I/O调用的发起;
2. 只支持单核CPU,不能充分利用CPU
3. 可靠性低,一旦代码某个环节崩溃,整个系统都崩溃
原因:单进程,单线程
解决方案:(1)Nnigx反向代理,负载均衡,开多个进程,绑定多个端口;
(2)开多个进程监听同一个端口,使用cluster模块;
4. 开源组件库质量参差不齐,更新快,向下不兼容
5. Debug不方便,错误没有stack trace
适合NodeJS的场景
1. RESTful API
2. 统一Web应用的UI层
3. 大量Ajax请求的应用

其实NodeJS能实现几乎一切的应用,我们考虑的点只是适不适合用它来做。

NPM的全称是Node Package Manager, 是一个NodeJS包管理和分发工具.

Grunt 是一个基于Nodejs的自动化任务执行工具。那么什么是任务执行工具呢,其实就是按照之前编定好的规则执行任务的一个工具。

Bower 是 twitter 推出的一款包管理工具,基于nodejs的模块化思想,把功能分散到各个模块中,让模块和模块之间存在联系,通过 Bower 来管理模块间的这种联系。官网请戳这里


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值