您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 广告经营 > Node.JS + MongoDB技术讲座NODEJS魔乐科技
魔乐科技软件学院()400-0088-518第(1)页共(34)页Node.JS+MongoDB技术讲座云计算+大数据=未来。在中国的云计算上基本上是一个概念,个人感觉与当初的SOA没有太大的区别,空泛的理论。中小型开发的未来=Node.JS+MongoDB解决,并不是说Java就没用了。魔乐科技软件学院()400-0088-518第(2)页共(34)页1、在前面的话从2008年开始,就一直应清华大学出版社要求进行Java相关图书的编写工作。魔乐科技软件学院()400-0088-518第(3)页共(34)页Java技术始终作为高端软件用户的首选,只要从事大型的软件开发,那么Java都是必须要使用的技术,尤其是在中国的相关项目之中,Java是会作为不二的选择。所有的服务器端技术本质上没有太多区别,都需要WEBServer,都需要一些基本的服务器端开发代码,都需要操作数据库,或者加入一些其他的操作支持。开发之中你们最大的难关:服务器端代码是写完了,可是如果在修饰界面有问题的时候,往往出面的还是你。缺少不同平台的交流。2003年之后开始流行的WebService彻底的改变了这一个现状。发现,JSON作为数据的传输,以及前后台都采用JavaScript应该可以方便的进行开发。个人对JavaScript看法:1、最早的时候我们经常会纠结于一个问题:数据的验证是在前台做还是在后台做?在这段时间之内,加上浏览器的战争,导致了JavaScript无用论;2、2005年开始中国流行的AJAX技术开始,JavaScript可以操作异步处理,而且使用DOM解析也可以动态的操作HTML页面,基于XML的数据传输;3、JQuery技术包装了一系列的DOM解析操作,简化了JavaScript的操作;但是不管如何改变,在之前,JavaScript可以做的工作只是在客户端运行。那么把JavaScript能否修改一下,加强其功能,让其可以变成适合服务器端的开发,就造就了Node.JS。今天的目的不是讲解Node.JS的相关语法,只是感受Node.JS的开发方便。个人推测:在PHP+MySQL逐步萎靡的今天,取代它们的应该就是Node.JS+MongoDB。魔乐科技软件学院()400-0088-518第(4)页共(34)页2、使用Node.JS开发WEB应用2.1、搭建开发环境魔乐科技软件学院()400-0088-518第(5)页共(34)页Node.JS是一个平台,而且这个平台使用的C++开发,基于JavaScript作为前台的表现语言。它是服务器端的语言,但是真的不需要去配置服务器。魔乐科技软件学院()400-0088-518第(6)页共(34)页魔乐科技软件学院()400-0088-518第(7)页共(34)页Node.js下载完成后需要首先进行安装。魔乐科技软件学院()400-0088-518第(8)页共(34)页魔乐科技软件学院()400-0088-518第(9)页共(34)页在使用Node.JS过程之中一定需要始终连接网络。总需要从网上下载相应的开发包。安装完成之后会出现相应的可执行命令,而现在这些命令不属于windows,所以需要将目录配置到path环境属性之中。不同路径之间要使用“;”分隔。魔乐科技软件学院()400-0088-518第(10)页共(34)页Express是整个Node.js之中最为常用的一个框架(开发包),使用它可以方便的快速构建起一个WEB项目。魔乐科技软件学院()400-0088-518第(11)页共(34)页魔乐科技软件学院()400-0088-518第(12)页共(34)页首先Express是一个Node.js最为常用的一个开发包,那么应该首先将其下载,而且下载的方式分为两种:只针对于一个项目进行开发包的下载,或者是针对于整个Node.js开发环境。现在下载开发包:npminstall-gexpress之后会出现许多的提示信息,提示用户的相关下载的进度。魔乐科技软件学院()400-0088-518第(13)页共(34)页下载完成之后,所有的全局包都保存在一个固定的目录:C:\DocumentsandSettings\Administrator\ApplicationData\npm魔乐科技软件学院()400-0088-518第(14)页共(34)页只要是开发项目,那么肯定需要一个保存项目的文件目录,此时的目录就将其定义为mldnnodedemo。mkdirmldnnodedemo而后进入到此目录之中(就想象为Eclipse的工作区,一个工作区之中可以定义多个项目。cdmldnnodedemo下面是一个非常重要的步骤,需要创建一个express项目(有明确的文件夹要求)。express-emyproject魔乐科技软件学院()400-0088-518第(15)页共(34)页魔乐科技软件学院()400-0088-518第(16)页共(34)页此时就表示项目建立完成了,就算你使用Eclipse的相关插件,也必须按照此步骤进行操作。而创建的项目之中存在了一个app.js文件,那么这个文件就作为了整个程序运行的主文件出现,即:只需要执行它,就可以运行HTTPServer。http.createServer(app).listen(app.get('port'),function(){console.log('Expressserverlisteningonport'+app.get('port'));System.out.println()一样,直接后台输出});此时,http的服务将在3000端口上监听用户的请求。如果要想启动服务器,直接进入到myproject目录里面,输入:nodeapp.js;之前下载的express貌似有点问题,重新在本项目里面下载一个:“npminstallexpress”。此时在myproject目录下也存在了node_modules目录,同时保存了express程序包。程序运行之后就会出现以下的提示信息:Expressserverlisteningonport3000表示在3000的端口监听。随后打开浏览器输入:继续安装ejs:npminstallejs。魔乐科技软件学院()400-0088-518第(17)页共(34)页这个就是默认显示界面。这个界面的内容保存在views目录下。但是现在有一个小小的问题出现了,如果要想运行Node.js程序,则现在只能够使用“nodeapp.js”,而这样的运行方式,如果在app.js文件修改之后往往需要重新启动才可以加载新的内容,这对于开发是非常不方便的,为此,可以使用一个supervisor组件包,它可以动态的加载修改之后的开发程序。魔乐科技软件学院()400-0088-518第(18)页共(34)页下载:supervisornpminstall-gsupervisor随后直接利用supervisor方式运行程序:supervisorapp.js以后项目之中,每一次文件的改变,那么都可以及时的监听到,同时也可以及时加载新的代码文件,对于开发是非常方便,但是有一点不方便:每一次修改的时候如果代码有错,后台会一直报错。2.2、编写代码下面要进行正规的开发了,本次要开发一个简单的登录程序,而这个用户登录程序,也分为两个开发步骤完成:第一步:是固定的用户名和密码完成、第二步:是基于MongoDB进行的登录开发。魔乐科技软件学院()400-0088-518第(19)页共(34)页之前通过代码可以发现,所有用户需要保存的页面都应该保存在views目录下,但是此时index.ejs是一个html页面,而有的人不习惯于使用ejs,习惯于使用html,为了解决这样的问题,则需要配置模板。定义加载的项目模块varejs=require('ejs');//require()函数表示要加载的模块需要增加一些相关的配置;app.engine('html',ejs.__express);app.set('viewengine','html');//替换:app.set('viewengine','ejs');将views中的index.ejs文件修改为index.html文件,观察是否可以改变。下面编写一个用户的登录,登录的时候只提供用户id(userid)和密码,下面建立几个相关的操作页面:login.html、welcome.html。但是在建立这两个文件的时候,请一定要注意,文件的编码必须设置为UTF-8,否则无法操作中文。范例:定义login.html!DOCTYPEhtmlhtmlheadtitle%=title%/titlelinkrel='stylesheet'href='/stylesheets/style.css'//headbody魔乐科技软件学院()400-0088-518第(20)页共(34)页h1%=title%/h1formmethod=post用户ID:inputtype=textname=useridid=useridbr密 码:inputtype=passwordname=passwordid=passwordbrinputtype=submitvalue=登录inputtype=resetvalue=重置/form/body/html范例:定义欢迎页——welcome.html!DOCTYPEhtmlhtmlheadtitleWelcome/titlelinkrel='stylesheet'href='/stylesheets/style.css'//headbodyh1欢迎%=user.userid%光临!/h1h1ahref=logout注销/a/h1/body/html范例:修改index.html页面,增加登录的链接地址!DOCTYPEhtmlhtmlheadtitle%=title%/titlelinkrel='stylesheet'href='/stylesheets/style.css'//headbodyh1%=title%/h1pahref=login用户登录/a/p/body/html在每一个页面之中并没有定义直接的连接,因为Node.js依然属于MVC设计模式的范畴,所以针对于MVC的实现,此处所编写的全部都属于映射名称,所有的映射路径都需要通过app.js进行相应的路由配置。魔乐科技软件学院()400-0088-518第(21)页共(34)页魔乐科技软件学院()400-0088-518第(22)页共(34)页app.get('/',routes.index);app.get('/login',routes.login);//此处还需要routes/index.js修改app.post('/login',routes.doLogin);//处理post请求,表单提交app.ge
本文标题:Node.JS + MongoDB技术讲座NODEJS魔乐科技
链接地址:https://www.777doc.com/doc-4503740 .html