日期:2014-05-16  浏览次数:20369 次

Node JS 学习总结

没有什么可以说的,任何技术,官方的网站已经是很好的开端了。

http://nodejs.org/

?

我用的是VMWare虚拟出的Ubuntu11.10,以下是环境安装过程

做之前可能会遇到的问题是linux下的权限问题,也就是说有些操作需要写/usr文件夹,那我想为了避免你在非root用户下出现无法写的问题,我的拙劣做法是chown -R $USER /usr 把usr的所有者改成我现在的登录帐户,不过这个命令有后遗症,就是sudo命令文件也被转增了,造成sudo命令失效,所以我的补救方法是在root下把sudo文件改回root所有,然后4755授权给我的帐户,也就是chown -R $USER /usr/local/sudo给root,然后chmod 4755 我的帐户就可以了。

?

1. 安装node js? : 官网已经有详细的说明,以下是从github拿最新版本的方式,也可以拿官网的打包好的代码编译。

??????????? 第一步 ,编译环境建立 sudo? apt-get install g++ curl libssl-dev apache2-utils

  • gcc and g++分别是GNU的c & c++编译器
  • curl 支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP的文件传输工具
  • libssl-dev, 就是openssl,但是为什么node.js还要用这个,不懂
  • apache2-utils一个运行web server的工具集,包括IP解析成hostname,加密文件操作等工具,

哈哈,linux还是很轻量级的,什么都要自己按需添加。至于为什么要这些,后面有理由

?

?????????? 第二步, 下载node js的源代码,现在流行放在github上,所以需要安装git命令

  • sudo apt-get install git-core安装git工具,
  • 然后git clone https://github.com/joyent/node.git,得到node源代码,
  • 看源代码的Makefile我们可以知道,原来需要用python以及内嵌的C代码,因为linux一般自带python编译器,所以可以直接运行,这就是为什么要用g++工具的原因。

????????? 第三步 ,make install来安装node js

?

现在node js终于安装好了,看看结果,node -v

?

2. node js的demo node chat分析,见我的后续blog,我打算另开篇幅讲一下,写的很棒。

?

3. node js的第三方插件下的开发应用

如果说node js把javascript放到服务器端运行并实现非阻塞是它的亮点的话,那么我想更大的sharppoint就是它的插件,插件之多令人激动,这种第三方开发模式现在非常流行,比如appstore,android,这是趋势。

第一个插件,NPM

这应该是管理其他插件的插件,node package manager,就是专门管理node js项目目录结构的,很有用啊。

安装方法:curl http://npmjs.org/install.sh | sh

看install.sh这个脚本,我们很容易看到有用CA证书拿文件的地方,所以需要openssl来支持CA证书所需的算法。当然还有apache2 utils来简化操作

其实这个一行操作也可以按照上面安装node js方法,首先git 最新的npm代码,然后make install一下

?

第2...N个插件 ,express,? socket io, 等。可以在http://search.npmjs.org/ 下搜索到自己想要的插件,不如我要跟mysql或者oracle连接,我们都可以找到相应的插件,基本没有你想不到的没有的插件,插件之多难以想象,如果能发现一个没有的时间,你就可以自己写一个上传上去,你就是那个领域的专家了。

下面我举最最流行的express插件说明一下。

command: npm install express

我们知道js就是为web开发而生的,而express作为node js的web框架,自然运用很广泛,国人也有很多人研究,可见如此的popular。所以一般全局安装,因为基本上都用到所以npm install -g express

看看安装好了没有,express -v

创建一个项目,express project1,我们可以看到文件结构都创建好了,而且有个package.json文件,里面描述了这个project依赖于express,至于为什么突然冒出给package.json,看npm开发手册吧,最重要的是它会按照这个json文件下载依赖的第三方插件到本地的node_modules文件夹,而这个文件夹就node js的模块的一个搜索路径,不错吧。

创建好了的代码直接可以运行,node app.js,很简单吧,

我们可以看app.js的简单实现,主要代码如下:

//包引入,会搜索node_modules下的express目录的index.js文件,读读这个文件就知道怎么回事了,

//其实node chat里面有类似express的简单实现,

var express = require('express')

//创建http 服务器实例

var app = module.exports = express.createServer();

//服务器开始在3000端口监听

app.listen(3000);

//处理URL请求

app.get('/', function(req,res){...});

?

?

?

?

?


?

?