




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
NodeJS学习手册1、 NodeJs是什么?Node.js是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行的数据密集型的实时应用。Node是一个Javascript运行环境(runtime)。实际上它是对Google V8引擎进行了封装。V8引 擎执行Javascript的速度非常快,性能非常好。Node对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好。特点:1. 它是一个Javascript运行环境;2. 依赖于Chrome V8引擎进行代码解释;3. 事件驱动;4. 非阻塞I/O;5. 轻量、可伸缩,适于实时数据交互应用;6. 单进程,单线程;2、 NodeJs安装(windows)(1) 下载NodeJS安装包下载地址:/download/,选择windows安装包及版本后继续(2) 下载完成后点击安装程序进行安装(3) 安装完成后,检查环境变量中是否已添加NodeJs的路径,如下图:若有可执行node version命令,可正常执行并出现如下图版本号则安装成功:3、 简单的NodeJs程序HelloWorld(1) 创建一个server.js文件,文件内容如下:/获取http模块,nodeJS用require获取方法及模块var http = require(http); /创建http监听方法,listen(8888)监听8888端口 http.createServer(function (request, response) response.writeHead(200, Content-Type: text/plain);/设置8888端口调用返回值Hello Worldresponse.end(Hello Worldn);).listen(8888); /控制台打印信息console.log(Server running at :8888/);(2) 进入server.js目录执行node server.js命令,启动该程序,执行效果如下:(3) 打开浏览器,输入链接http:/localhost:8888,浏览器出现如下信息: 以上一个简单的http服务器就创建完成了。4、 NodeJS的express开发框架使用(1) 安装express库在系统命令行操作页面执行npm install -g express-generator4安装express4库,执行效果如下:再执行express V命令,命令行打印出express版本则安装成功,如下图:(2) 创建express项目进入想创建项目的路径,执行语句express -e express_demo ,执行和效果如下图: 命令执行后,在文件夹会创建express_demo项目,创建文件如下:各目录用途如下: bin, 存放启动项目的脚本文件 node_modules, 存放所有的项目依赖库。 public,静态文件(css,js,img) routes,路由文件(MVC中的C,controller) views,页面文件(Ejs模板) package.json,项目依赖配置及开发者信息 app.js,应用核心配置文件(3) 安装express依赖库,构建项目进入express_demo目录执行npm install命令,下载安装依赖库,执行后效果如下:执行之后项目node_modules增加如下目录:这些即为命令下载的依赖库,通过require方法可以调用这个依赖库中的模块。(4) Express项目启动Express4.0之后启动项目使用 npm start命令,执行后效果如下:浏览器访问效果如下:如此,一个express项目就建立完成了。5、 NodeJS的supervisor命令NodeJS项目常规项目启动方法,每次做修改都需要手动重启,给开发调试造成很大的不方便,所以提供supervisor命令,该命令可以在修改项目文件后自动重启项目,无需手动重启,具体使用方法如下:(1) 安装supervisor,执行npm install supervisor命令,执行效果如下:(2) 利用supervisor命令启动项目,这边需要注意,supervisor命令只能启动js文件,所以expess4.0的项目,需要启动bin目录下的www.js文件,执行如下:如上操作后项目就利用supervisor命令成功启动,当项目文件变动时,supervisor会将项目自动重启。6、 NodeJS开发工具NodeJS开发常用工具有sublime2,webstorm及eclipse插件nodeclipse,其中sublime2适用小型项目开发,webstorm适用于大型项目开发,由于我们主要开发语言是java所以建议适用nodeclipse进行开发。安装nodeclipse插件需要安装如下两个插件:(1) 安装插件NodeJS的插件,下载地址:/updates(2) 安装VJET编辑提示插件,下载地址:/vjet/updates-0.10 以上两个插件安装成功后,就可以在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模块,在命令行执行命令npm install mysql2.0.0-alpha9,执行后效果如下:执行之后,项目node_modules目录增加mysql目录,则mysql连接模块安装成功。(3) 在数据库建立teacher表,表里有name,sex,age三个属性,数据库默认一条数据,信息如下: (4) 打开项目app.js文件,添加如下代码:/获取mysql连接组件var mysql = require(mysql);/设置mysql连接信息var conn = mysql.createConnection( host: localhost, user: root, password: root, database: test, port: 3306);/连接数据库conn.connect();/定义需要执行的mysql语句var insertSQL = insert into teacher(name,sex,age) values(Tom,man,23),(Jack,man,24),(Lily,woman,28);var selectSQL = select * from teacher limit 10;var deleteSQL = delete from teacher;var updateSQL = update teacher set name=Arvin where age=23;/deleteconn.query(deleteSQL, function (err0, res0) if (err0) console.log(err0); console.log(DELETE Return = ); console.log(res0); /insert conn.query(insertSQL, function (err1, res1) if (err1) console.log(err1); console.log(INSERT Return = ); console.log(res1); /query conn.query(selectSQL, function (err2, rows) if (err2) console.log(err2); console.log(SELECT = ); for (var i in rows) console.log(rowsi); /update conn.query(updateSQL, function (err3, res3) if (err3) console.log(err3); console.log(UPDATE Return = ); console.log(res3); /query conn.query(selectSQL, function (err4, rows2) if (err4) console.log(err4); console.log(SELECT = ); for (var i in rows2) console.log(rows2i); ); ); ); ););以上语句连接数据库后依次执行删除数据,插入三条数据,查询数据,更新一条数据。(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从/dmajkic/redis/downloads下载redis并解压到想要安装的目录;(2) 启动redis打开命令行操作界面,进入redis根目录下,执行语句:redis-server.exe redis.conf,命令行打印出如下信息: 如上图,则redis启动成功。(3) 连接redis重新打开一个命令行操作页面,进入根目录,执行语句redis-cli.exe -h -p 6379,连接redis,执行后控制台输出如下:同时redis服务端控制台打印如下消息,表面有一个客户端连接,如图:以上输出表明连接redis成功。(4) 测试redis进入已连接的redis客户端操作命令行界面,存储一个key为test,执行命令set test “Hello World”,执行后,控制台打印如下:再将test值取出,执行命令get test,控制台打印如下:(5) 创建基于express4.0的NodeJS测试项目,进入项目下载依赖库,检查项目运行正常;(6) 进入项目,安装redis依赖包,执行语句npm install redis,控制台输出如下:项目目录node_modules中新增redis文件夹;(7) 打开app.js文件添加如下代码: /获取redis连接组件var redis = require(redis);/连接本地redisvar client = redis.createClient(6379,); /set redistest 值this is an testing redis,若set成功则get并打印值client.set(redistest, this is an testing redis, function(err, response) if (err) console.log(Failed to set key of redistest, error: + err); return false; client.get(redistest,function(errGet,responseGet) console.log(redistest:+responseGet); ););(8) 启动NodeJS项目,查看控制台输出信息,如下图:可以看到成功打印该信息,为确保set完成,启动redis的cli
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 征用协议书范本
- 第1课 推广平台推广-各有千秋遵守规则教学设计小学信息科技清华版贵州2024三年级下册-清华版(贵州)2024
- 电池苹果协议书
- 车辆停放协议书
- 华信智原的就业协议书
- 大米长期供货协议书
- 复婚后婚内协议书
- 学生协议书卡
- 个人房屋买卖协议书
- 安全知识培训封面课件
- 信访工作预防法治化课件
- DB51∕T 3060-2023 四川省政务信息化后评价指南
- 2025年四川省机关事业单位考调/选调工作人员考试(综合知识/综合应用能力测试)历年参考题库含答案详解(5套)
- DB4201∕T 645-2021 房地产经纪服务规范
- 2025-2030中国燃气供应系统(FGSS)行业经营现状及未来前景展望报告
- 板块六 学案40 赏析意象(景象)与意境-分析内涵品象悟境
- 村集体山林管理办法
- 数独教学课件
- 海绵印拓画课件
- 2025年科技创新与成果转化的知识能力考核试题及答案
- 2025至2030中国惯性导航行业投资现状与前景预测分析报告
评论
0/150
提交评论