NodeJS学习手册1、NodeJs是什么?Node.js是一个基于ChromeJavaScript运行时建立的平台,用于方便地搭建响应速度快、易于扩展的网络应用。Node.js使用事件驱动,非阻塞I/O模型而得以轻量和高效,非常适合在分布式设备上运行的数据密集型的实时应用。Node是一个Javascript运行环境(runtime)。实际上它是对GoogleV8引擎进行了封装。V8引擎执行Javascript的速度非常快,性能非常好。Node对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好。特点:1.它是一个Javascript运行环境;2.依赖于ChromeV8引擎进行代码解释;3.事件驱动;4.非阻塞I/O;5.轻量、可伸缩,适于实时数据交互应用;6.单进程,单线程;2、NodeJs安装(windows)(1)下载NodeJS安装包下载地址:,选择windows安装包及版本后继续(2)下载完成后点击安装程序进行安装(3)安装完成后,检查环境变量中是否已添加NodeJs的路径,如下图:若有可执行node–version命令,可正常执行并出现如下图版本号则安装成功:3、简单的NodeJs程序HelloWorld(1)创建一个server.js文件,文件内容如下://获取http模块,nodeJS用require获取方法及模块varhttp=require('http');//创建http监听方法,listen(8888)监听8888端口http.createServer(function(request,response){response.writeHead(200,{'Content-Type':'text/plain'});//设置8888端口调用返回值HelloWorldresponse.end('HelloWorld\n');}).listen(8888);//控制台打印信息console.log('Serverrunningat);(2)进入server.js目录执行nodeserver.js命令,启动该程序,执行效果如下:(3)打开浏览器,输入链接浏览器出现如下信息:以上一个简单的http服务器就创建完成了。4、NodeJS的express开发框架使用(1)安装express库在系统命令行操作页面执行npminstall-gexpress-generator@4安装express4库,执行效果如下:再执行express–V命令,命令行打印出express版本则安装成功,如下图:(2)创建express项目进入想创建项目的路径,执行语句express-eexpress_demo,执行和效果如下图:命令执行后,在文件夹会创建express_demo项目,创建文件如下:各目录用途如下:bin,存放启动项目的脚本文件node_modules,存放所有的项目依赖库。public,静态文件(css,js,img)routes,路由文件(MVC中的C,controller)views,页面文件(Ejs模板)package.json,项目依赖配置及开发者信息app.js,应用核心配置文件(3)安装express依赖库,构建项目进入express_demo目录执行npminstall命令,下载安装依赖库,执行后效果如下:执行之后项目node_modules增加如下目录:这些即为命令下载的依赖库,通过require方法可以调用这个依赖库中的模块。(4)Express项目启动Express4.0之后启动项目使用npmstart命令,执行后效果如下:浏览器访问效果如下:如此,一个express项目就建立完成了。5、NodeJS的supervisor命令NodeJS项目常规项目启动方法,每次做修改都需要手动重启,给开发调试造成很大的不方便,所以提供supervisor命令,该命令可以在修改项目文件后自动重启项目,无需手动重启,具体使用方法如下:(1)安装supervisor,执行npminstallsupervisor命令,执行效果如下:(2)利用supervisor命令启动项目,这边需要注意,supervisor命令只能启动js文件,所以expess4.0的项目,需要启动bin目录下的文件,执行如下:如上操作后项目就利用supervisor命令成功启动,当项目文件变动时,supervisor会将项目自动重启。6、NodeJS开发工具NodeJS开发常用工具有sublime2,webstorm及eclipse插件nodeclipse,其中sublime2适用小型项目开发,webstorm适用于大型项目开发,由于我们主要开发语言是java所以建议适用nodeclipse进行开发。安装nodeclipse插件需要安装如下两个插件:(1)安装插件NodeJS的插件,下载地址:(2)安装VJET编辑提示插件,下载地址:以上两个插件安装成功后,就可以在eclipse中新建nodeJs项目,并在其中启动nodeJS项目,这边需要注意的是目前nodeclipse对express4.0框架的支持存在问题,无法启动express4.0的项目,建议在eclipse环境中开发使用express3.0框架。7、NodeJS与mysql数据库结合使用felixge/node-mysql是一个纯nodejs的用javascript实现的一个MySQL客户端程序。felixge/node-mysql封装了Nodejs对MySQL的基本操作,这边主要使用它实现NodeJS与mysql的连接,具体连接操作如下:(1)创建基于express4.0的NodeJS测试项目,进入项目下载依赖库,检查项目运行正常;(2)进入项目根目录,下载felixge/node-mysql模块,在命令行执行命令npminstallmysql@2.0.0-alpha9,执行后效果如下:执行之后,项目node_modules目录增加mysql目录,则mysql连接模块安装成功。(3)在数据库建立teacher表,表里有name,sex,age三个属性,数据库默认一条数据,信息如下:(4)打开项目app.js文件,添加如下代码://获取mysql连接组件varmysql=require('mysql');//设置mysql连接信息varconn=mysql.createConnection({host:'localhost',user:'root',password:'root',database:'test',port:3306});//连接数据库conn.connect();//定义需要执行的mysql语句varinsertSQL='insertintoteacher(name,sex,age)values(Tom,man,23),(Jack,man,24),(Lily,woman,28)';varselectSQL='select*fromteacherlimit10';vardeleteSQL='deletefromteacher';varupdateSQL='updateteachersetname=Arvinwhereage=23';//deleteconn.query(deleteSQL,function(err0,res0){if(err0)console.log(err0);console.log(DELETEReturn==);console.log(res0);//insertconn.query(insertSQL,function(err1,res1){if(err1)console.log(err1);console.log(INSERTReturn==);console.log(res1);//queryconn.query(selectSQL,function(err2,rows){if(err2)console.log(err2);console.log(SELECT==);for(variinrows){console.log(rows[i]);}//updateconn.query(updateSQL,function(err3,res3){if(err3)console.log(err3);console.log(UPDATEReturn==);console.log(res3);//queryconn.query(selectSQL,function(err4,rows2){if(err4)console.log(err4);console.log(SELECT==);for(variinrows2){console.log(rows2[i]);}});});});});});以上语句连接数据库后依次执行删除数据,插入三条数据,查询数据,更新一条数据。(5)启动程序,查看控制台输出如下:从控制台打印数据可以看出nodeJS已成功连接上mysql并且按照顺序执行了mysql语句,查看数据库可以看出执行正确,如图:8、NodeJS与redis连接Redis是一个key-value存储系统。和Memcached类似,但是解决了断电后数据完全丢失的情况,而且她支持更多无化的value类型,除了和string外,还支持lists(链表)、sets(集合)和zsets(有序集合)几种数据类型。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。Redis在Java开发中有很多应用,这边学习NodeJS与redis的连接使用:(1)安装redis从下载redis并解压到想要安装的目录;(2)启动redis打开命令行操作界面,进入redis根目录下,执行语句:redis-server.exeredis.conf,命令行打印出如下信息:如上图,则redis启动成功。(3)连接redis重新打开一个命令行操作页面,进入根目录,执行语句redis-cli.exe-h127.0.0.1-p6379,连接redis,执行后控制台输出如下:同时redis服务端控制台打印如下消息,表面有一个客户端连接,如图:以上输出表明连接redis成功。(4)测试redis进入已连接的redis客户端操作命令行界面,存储一个key为test,执行命令settest“HelloWorld”,执行后,控制台打印如下:再将test值取出,执行命令gettest,控制台打印如下:(5)创建基于express4.0的NodeJS测试项目,进入项目下载依赖库,检查项目运行正常;(6)进入项目,安装redis依赖包,执行语句npminstallredis,控制台输出如下:项目目录node_modules中新增redis文件夹;(7)打开app.js文件添加如下代码://获取redis连接组件varredis=require(redis);//连接本地redisvarclient=redis.createClient(6379,'127.0.0.1');//set'redistest'值thisisantestingredis,若set成功则get并打印值client.set('redistest','thisisantestingredis',function(err,response){if(err){console.log('Failedtosetkeyof'redistest'