Node.js:分析及基本使用
项目使用方向:
Node.js统一前后端代码,通过less及coffeescript进行扩展
能内建webserver实现高效的web请求,简化web服务器搭建的复杂度
分析:
- 小项目:能简化服务器搭建的复杂度
- 大项目:能灵活的作为web接口服务器进行数据请求的响应,来代替类似消息队列,缓存中间件,resful相应接口服务器,及相关中间件代理服务器
- 作为web应用:可以通过less及coffeescript的模块实现高效结构化的统一开发,其他语言使用这2个模块则需要相应的自动化运维设置,比较繁琐
- 最主要的应用方向是与HTML5中的websocket进行相互通信,这点充分结合了node.js和HTML5的特性,能开发出更加令人惊艳的应用体验
难度:
因为node.js很灵活,个人认为对于大型应用的负载均衡,需要有合理的逻辑封装
能从根本上将零碎的应用组装起来,实现高伸缩扩展的分布式结构
设定统一的分布式框架,建立角色为基础的应用关系,内建通信机制及相应的分布式算法
Node.js的目标
- Node 公开宣称的目标是 “旨在提供一种简单的构建可伸缩网络程序的方法”。
- 当前的服务器程序有什么问题?服务器能够处理的并发连接的最大数量。
- Node 解决这个问题的方法是:更改连接到服务器的方式。
- 每个连接发射一个在 Node 引擎的进程中运行的事件,而不是为每个连接生成一个新的 OS 线程(并为其分配一些配套内存)。
- Node 声称它绝不会死锁,因为它根本不允许使用锁,它不会直接阻塞 I/O 调用。
- Node 还宣称,运行它的服务器能支持数万个并发连接。
Node.js的包管理
Node 的一个特性是 Node Package Module,这是一个内置功能,用于安装和管理 Node 模块。
它自动处理依赖项,因此您可以确定:您想要安装的任何模块都将正确安装并包含必要的依赖项。
它还支持将您自己的模块发布到 Node 社区,假如您选择加入社区并编写自己的模块的话。
您可以将 NPM 视为一种允许轻松扩展 Node 功能的方法,不必担心这会破坏您的 Node 安装。
同样,如果您选择深入学习 Node,那么 NPM 将是您的 Node 解决方案的一个重要组成部分。
Node.js安装
1.源码安装需要python支持
设置python2.x版本为python解析器
export PYTHON=`whick python2` 或者添加符号连接 cd /usr/local/bin ln -s /usr/bin/python2 python ln -s /usr/bin/python2-config python-config
2.源码安装
tar -zxf node-vxxxx.tar.gz 添加到执行路径 export PATH=$PATH:/opt/node/bin
3.自动更新
npm update npm -g
4.模块安装,通过npm管理
npm install 模块名
全局安装:加上-g参数
项目安装:会在项目目录下建立/node_modules
5.项目开发
npm init用以初始化项目,填写的信息会存放到package.json下
6.项目管理:package.json
规范:http://wiki.commonjs.org/wiki/Packages/1.1
在这个文件里你可以定义你的
- 应用名称( name )
- 应用描述( description )
- 关键字( keywords )
- 版本号( version )
- 应用的配置项( config )
- 主页( homepage )
- 作者( author )
- 资源仓库地址( repository )
- bug的提交地址( bugs )
- 授权方式( licenses )
- 目录( directories )
- 应用入口文件( main )
- 命令行文件( bin )
- 应用依赖模块( dependencies )
- 开发环境依赖模块( devDependencies )
- 运行引擎( engines )
- 脚本( scripts )
npm install会自动根据依赖模块下载模块并安装到项目目录下