基于Node.js的小型框架设计与实现-毕业设计(论文).doc
《基于Node.js的小型框架设计与实现-毕业设计(论文).doc》由会员分享,可在线阅读,更多相关《基于Node.js的小型框架设计与实现-毕业设计(论文).doc(62页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机科学与技术学院毕业设计(论文)论文题目基于Node.js的小型框架设计与实现指导教师x职 称x学生姓名x学 号x专 业x班 级x系 主 任x院 长x起止时间2012年11月25日至2013年6月6日2013年6月6日目录第一章 绪论51.1 node.js介绍51.2 node.js平台的优势领域61.3 node.js平台的非擅长领域81.4 开发框架的原因101.5开发框架存在的问题111.6本章小结12第二章 开发工具及技术综述122.1使用工具简介132.1.1 文本编辑器Vim132.1.2 git简介152.1.3 javascrip高级语言特性172.2使用平台简介212.
2、2.1 GitHub简介212.2.2 Ubuntu 简介222.3开源协议介绍222.3.1 BSD开源协议222.3.2 Apache Licence 2.0232.3.3 GPL(GNU General Public License)232.3.4 LGPL(GNU Lesser General Public License)232.3.5 MIT242.4 node.js开发环境搭建242.5 本章小结26第三章 框架的设计与实现263.1框架概述263.2开发环境273.2.1 硬件环境273.2.2 软件环境273.3框架基础示意图273.3.1 服务端监听示意图283.3.2横向
3、切面请求拦截器示意图293.3.3路由分发器示意图313.3.4 Cookie示意图333.3.5 Session示意图343.4 本章小结35第四章 核心功能使用364.1 下载FastJsonWeb.364.2 FastJsonWeb文件目录介绍364.3 FastJsonWeb的API说明及使用说明374.3.1 Cookie.js374.3.2 mime.js394.3.3 request_handle.js394.3.4 server.js404.3.5 session.js404.3.6 业务处理对象424.3.7 请求横向切面拦截器434.3.8 动态方法调用434.3.9 属性
4、注入444.4 本章小结46第五章 实例介绍475.1 获取框架475.2 编写业务逻辑475.2.1 设置服务器监听端口475.2.2 实现Hello FastJsonWeb485.2.3 用户登录功能505.3本章小结54第六章 不足与发展556.1 框架的不足556.2 框架的发展576.3 本章小结58参考文献59谢 辞60基于Node.js的小型框架设计与实现摘要:node.js是一种新的软件开发平台,它不仅是一门独立的语言,也与Python、Ruby一样,既是语言也是平台。node.js将javascript从浏览器移植到了普通服务器上。使得javascript也能实现了诸如文件系
5、统、操作系统、网络通信等功能。Node运行在Chorme的V8引擎上,采用异步I/O与事件驱动的架构设计和单线程模型,并且内置了HTTP服务器,主要用于构建高性能,高并发,高扩展的服务器。node.js具有高性能的同时,对于底层的封装比较低,如一般的请求数据等都需要分析Http协议并将所需的数据从request数据流中解析出来,没有提供如java web般丰富的API,这既是优点也是缺点,优点在于为开发者提供了非常大的自由性,可以利用底层接口完成各种各样的功能,缺点在于直接使用底层接口做系统应用开发,效率非常低下,因为需要分析和处理各种数据。node.js刚推广不久,国内还比较缺少使用node
6、.js做应用开发的框架,如果直接使用node.js底层API进行应用开发有较大的困难,基于此点,本论文开发设计一个简单小型的MVC框架,简化node.js的使用的同时提高开发效率。目前 web 应用中,普遍使用了MVC模式(即Model-View-Controller,模型,视图,控制器)。如基于 JAVA EE 的Struts2 + Spring3 + jsp MVC模式等 。借鉴这些其他平台上现有的框架结构和功能,设计开发FastJsonWeb框架。本框架将封装node.js的底层接口,对请求数据等提供统一简洁的方式,从而较大幅度的提升开发效率。基于对不同平台现有框架分析提取出本框架的功能
7、点。这些功能点包括 路由转发与映射,属性注入,Cookie实现,Sesison实现等。关键词:node.js;javascript;ABSTRACTNode.js is not only a separate language,but a new software development platform. Just like the Python and the Ruby, they are both language and platform.Node.js transplant the javascript from your browser to a common server. Th
8、at makes JavaScript can achieve as file systems, operating systems, network communications, and other functions.The Node.js is always running in Chorme V8 engine, with asynchronous I / O and event-driven architecture design and single-threaded model, and built-in HTTP server, mainly for building hig
9、h-performance, high-concurrency, highly scalable server.Node.js really get a high performance ,while the package of bottom part is low enough.For example, the common data requested need analysis of HTTP and analyze the required data from the request data stream,without providing a rich java web API.
10、This style offered an advantage and a disadvantage. The advantage is that it provided the developers with a lot of freedom so that the developers can use the low-level interface to complete a variety of functions, while the disadvantage is that the direct use of the low-level interface for system ap
11、plication development got very low efficiency, because of the analyzing and processing for the various kinds of data need a lot of resources.Node.js is just carried our, in our country, the framework used the node.js in doing application development is still lacking. A directly use of the Node.js un
12、derlying to work on an application development may be much more difficult. In order to deal with this kind of situation, this article will describe a design of a simple and small MVC framework to simplified the use of Node.js, and to improve the development efficiency at the same time.Nowadays, Web
13、applications get a wide use of the MVC pattern (Model-View-Controller, Model, View, Controller). Such as the Struts2 + Spring3 + jsp MVC model based JAVA EE . Learning from the structure and function of these existing framework, this article try to describe the design and development of FastJsonWeb
14、framework. This framework will pack the Node.js underlying interface, and provide a unified and concise manner to the request data, which will improve the development efficiency a lot. This article will extract the framework function points according to the analysis of the existing framework of diff
15、erent platforms. These function points include the route forwarding and mapping, property injection, cookie achievement and Sesison achievement and something more.iii第一章 绪论 1.1 node.js介绍随着网络技术的发展和网络平台的推广,越来越多的应用是基于网页形式来提供。其中javascript是网页应用技术中不可缺少的一部分。Javascript跟随网络技术的发展得到了也得到了大幅的提升。越来越多的人使用javascrip
16、t。由于javascript在浏览器端具有极高的执行效率,并且兼容多种流浪器,这促使其中一部分人思考是否可以把javascript放在服务端运行,能够像其他web语言一样提供业务逻辑处理。于是不久node.js便诞生了。node.js是一种新的软件开发平台,它的特殊性决定了它不仅可以作为一门开发编程语言,也可以像Ruby、Pythond等语言一样作为一个开发者平台。node.js将javascript从浏览器移植到了普通服务器上,它运行在Chrome的V8高速引擎上,实现了操作系统访问、网络通信、文件读写等功能。 目前 web 应用普遍采用Tomcat,Apache Server,IIS等做H
17、TTP服务器,HTML,CSS javascript做前端展示,以 浏览器服务器后台 容器 模式来进行请求应答。该模式下请求通过了一层或多层转发,使得通信效率较低。而在Node中,后台容器 用C+语言设计把服务器和容器本身融合在一起,采用 浏览器 后台容器 模式进行请求应答,大大提高了通信的效率。不同于其他的语言的线性执行,Node采用事件驱动机制,充分利用了CPU的时间片轮转机制,很大程度上降低了CPU 的空闲率,同时它异步I/O与事件驱动的架构设计和单线程模型对于构建高性能,高并发,高扩展的服务器具有相当大的优势。因此,采用node.js为后台的web应用或者企业应用能够较大程度的降低硬件
18、成本和提高应用处理业务的效率。新的开发平台,需要新的发展。1.2 node.js平台的优势领域node.js 自身融合入HTTP 服务器,这对于组合网站和服务器是非常简单方便的。这是它和其他web语言如 PHP、Perl 的不同所在。比如,在使用 PHP 进行业务系统开发,首先必须搭建一个HTTP 服务器如 Apache,IIS 之类。然后通过 该Http服务器的模块加载或 CGI 调用,将脚本的执行结果反馈显示在用户端。使用 node.js 平台好处之一在于不用额外搭建 HTTP 服务器, node.js 本身融合的Http服务器既可以作为开发阶段的调试环境也可以直接作为产品提供给客户使用。
19、除此之外,自带的服务器性能足以满足生产环境的要求。node.js 既可以在网络环境下运行也可以非网络的环境下运行,如即时编译终端。node.js 虽然使用javascript语言,但是它同样可以调用C或者C+ 的函数库,完成对性能要求非常高的功能的实现。事件驱动与异步式I/O模型。node.js 最大的特点就是采用异步式 I/O 与事件驱动的架构设计。传统架构对于高并发的解决方案是采用多线程模型,也就是一个系统线程处理一个业务逻辑,通过系统线程切方式弥补同步式 I/O 的时间开销。node.js 采用的是单线程模型通过异步式的请求方式处理I/O调用,减少了切换上下文次数所造成的开销。node.
20、js运行的过程中将管理一个事件堆栈,不断地循环执行事件然后等待下一个事件的触发。异步式 I/O 请求完成后将被推送到事件队列,等待主进程进行处理。基于事件的异步处理机制的node.js对于所有的网络通信、磁盘读写、数据库操作等都以异步请求的方式实现,最后将执行得到的结果交给事件循环进行处理。下图1.1描述了这个机制。 图1.1node.js 进程在进行事件处理时具有时间的唯一性,它不会同时处理多个事件请求,在处理完一个事件后就进程就进入下一个事件循环,检查并继续处理后面的事件。这样做优点在于能够集中CPU 和内存资源快速处理某个事件,并且尽量让耗费资源的 I/O 操作并行执行。在应对恶意访问方
21、面,node.js对于低速的DOS攻击,node.js 只增加事件堆栈中的请求请求树立,而不会马上给出请求应答,这样有效的减少了线程资源的开销,很大程度上提高了 Web 应用的健壮性和安全性。由于node.js 采用事件驱动与异步式 I/O 代替多线程,较大幅度的提升性能。此外node.js 除了使用Google的Chrome V8 作为JavaScript引擎,它还使用了高效的 libeio和库libev支持事件驱动和异步式 I/O。 node.js 架构的示意图如下 图1-2设计node.js 的开发者从 libev 和 libeio 库中进一步封装出来出libuv层。在 Windows
22、下,libuv 使用了 Windows的 IOCP(Input/Output Completion Port,输入输出完成端口)机制,实现高性能,而对于Linux、UNIX,Mac OS X等操作系统,node.js的libuv 库通过使用libeio和libev 的封装来利用 kqueue 或 epoll。以上简单介绍了node.js。那么为网络而生的node.js能够做一下事情。(1)大规模的社交网络 Web 应用,如微博,FaceBook等。(2)具有复杂逻辑的网站;如一般的MIS系统。(3)Web Socket 服务器;如游戏引擎。(6)TCP/UDP 套接字应用程序,即时通信系统;(
23、7)客户端 JavaScript 编译器。由于node.js具有以上优点,所以对于web应用来说node.js是优秀的开发平台。1.3 node.js平台的非擅长领域一个优秀的平台能够吸引大量开发者的关注。node.js有许多传统架构不具备的优点,以至于开发者愿意用node.js来做应用开发。但是node.js 与其他任何平台一样,都存在优点和缺点,如果非要使用它的缺点来完成业务需求,那么同样会遇到困难和僵局。尽管它是高性能的,新颖的,但也不得不写出难以理解的逻辑代码。与大多数新语言平台本质一样,node.js 也是旧瓶装新酒。只不过概念比较新潮,它不能完成所有的业务逻辑,或者说它不是万能的。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Node js 小型 框架 设计 实现 毕业设计 论文
限制150内