计算机毕业论文基于nodejs的个人博客内容摘要:

悲剧。 单线程的异步和非阻塞: 是单线程的,但是它如何做到 I/O 的异步和非阻塞的呢。 其实 在底层访问 I/O 还是多线程的,有兴趣的朋友可以翻看 的 fs 模块的源码,里面会用到 libuv来处理 I/O,所以在我们看来 的代码就是非阻塞和异步形式的。 阻塞 /非阻塞与异步/同步是两个不同的概念,同步不代表阻塞,但是阻塞肯定就是同步了。 举个现实生活中的例子,我去食堂打饭,我选择了 A 套餐,然后工作人员帮我去配餐,如果我就站在旁边,等待工作人员给我配餐,这种情况就称之为同步;若工作人员帮我配餐的同时,排在我后面的人就开始点餐,这样整个食堂的点餐服务并没有因为我在等待 A套餐而停止,这种情况就称之为非阻塞。 这个例子就简单说明了同步但非阻塞的情况。 再如果我在等待配餐的时候去买饮料,等听到叫号再回去拿套餐,此时我的饮料也已经买好,这样我在等待配餐的同时还执行了买饮料的任务,叫号就等于执行了回调,就是异步非阻塞了。 MongoDB 简介 MongoDB 是一个基于分布式文件存储的数据库。 由 C++语言编写。 旨在为 WEB 应用提供可扩展的高性能数据 存储解决方案。 他支持的数据结构非常松散,是类似 json 的 bson格式,因此可以存储比较 复杂的数据类型。 MongoDB 最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立 索引。 MongoDB 的主要功能特性有: 面向集合存储,易存储对象类型的数据; 模式自由; 基于 6 支持动态 查询 ; 支持完全索引,包含内部对象; 支持查询; 支持复制和故障恢复; 使用高效的二进制数据存储,包括大型对象(如视频等); 自动处理碎片,以支持云计算层次的扩展性; 支持 RUBY, PYTHON, JAVA, C++, PHP, C等多种语言; 文件存储格式为 BSON(一种 JSON 的扩展); 1可通过 网络 访问。 Express 简介 Express 是一个简洁而 灵活的 Web 应用框架 , 提供一系列强大特性用以创建各种 Web 应用。 Express 是 已有的 特性进行二次抽象,在它之上扩展了 Web 应用所需的功能。 ejs 模板引擎 什么是模板引擎。 模板引擎( Template Engine)是一个将页面模板和要显示的数据结合起来生成 HTML 页面的工具。 模板引擎就相当于 MVC 中的视图。 模板引擎的功能是将页面模板和要显示的数据结合起来生成 HTML 页面。 它既可以运 行在服务器端又可以运行在客户端,大多数时候它都在服务器端直接被解析为 HTML,解析完成后再传输给客户端,因此客户端甚至无法判断页面是否是模板引擎生成的。 有时候模板引擎也可以运行在客 户端,即浏览器中,典型的代表就是 XSLT,它以 XML 为输入,在客户端生成 HTML 页面。 但是由于浏览器兼容性问题, XSLT 并不是很流行。 目前的主流还是由服务器运行模板引擎。 在 MVC 架构中,模板引擎包含在服务器端。 控制器得到用户请求后,从模型获取数据,调用模板引擎。 模板引擎以数据和页面模板为输入,生成 HTML 页面,然后返回给控制器,由控制器交回客户端。 什么是 ejs。 ejs 是模板引擎的一种,也是我们这个教程中使用的模板引擎,因为它使用起来十分简单,而且与 express 集成良好。 ejs 用来从 JSON 数据中生成 HTML 字符串。 ejs 的优点是将会基于 7 带给你明确、维护性良好的 HTML 代码结构。 因此,本系统选择使用的模版引擎是 ejs。 ejs 的标签系统非常简单,它只有以下三种标签: % code %: JavaScript 代码。 %= code %:显示替换过 HTML 特殊字符的内容。 % code %:显示原始 HTML 内容。 MVC 设计模式 MVC 模式( ModelViewController)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型 ( Model)、视图( View)和控制器( Controller)。 MVC 模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。 除此之外,此模式通过对复杂度的简化,使程序结构更加直观。 软件系统通过对自身基本部分分离的同时也赋予了各个基本部分应有的功能。 1. (控制器 Controller) —— 负责转发请求,对请求进行处理。 2. (视图 View) —— 界面设计人员进行图形界面设计。 3. (模型 Model) —— 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数 据库设计 (可以实现具体的功能 )。 图 13 MVC 模型图 MVC 的优点: ( 1)多个视图能共享一个模型。 如今,同一个 Web 应用程序会提供多种用户界面,例如用户希望既能够通过浏览器来收发电子邮件,还希望通过手机来访问电子邮箱,这就要求 Web 网站同时能提供 Inter 界面和 WAP 界面。 在 MVC 设计模式中,模型响应用户请求并返回响应数据,视图负责格式化数据并把它们呈现给用户,业务逻辑和表示层分离,同一个模型可以被不同的视图重用,所以大大提高了代码的可重用性。 基于 8 ( 2)控制器是自包含( selfcontained)指高独立内聚的对象,与模型和视图保持相对独立,所以可以方便的改变应用程序的数据层和业务规则。 例如,把数据库从 MySQL 移植到 Oracle,或者把 RDBMS 数据源改变成 LDAP 数据源,只需改变模型即可。 一旦正确地实现了控制器,不管数据来自数据库还是 LDAP 服务器,视图都会正确地显示它们。 由于 MVC 模式的三个模块相互独立,改变其中一个不会影响其他两个,所以依据这种设计思想能构造良好的少互扰性的构件。 ( 3)控制器提高了应用程序的灵活性和可配置性。 控制器可以用来连接不同的模型和视图去完成用户的需求 ,也可以构造应用程序提供强有力的手段。 给定一些可重用的模型和视图,控制器可以根据用户的需求选择适当的模型进行处理,然后选择适当的的视图将处理结果显示给用户。 MVC 的缺点: ( 1)因为 MVC 将视图和模型分离了。 这就会增加系统的设计结构与其实现方法的复杂性,同时也给系统的调试大大地加大了难度。 ( 2)加大了系统频繁更新的成本。 虽然是进行了分层操作,但这并不意味着在更新系统模型的时候能完全忽略视图的性质,当具体的一些接口变化的模型需要频繁更新,而使得在视图的处理上变得繁琐,这导致了视图更新落后于模型的变化,错误 情况不能正常地显示。 ( 3) MVC 的三层模式会造成系统的构件较多,也就是会增多系统的代码,因此,必须进行有效的代码管理工作。 系统运行要求 硬件要求 CPU:速度在 500MHz 或以上。 CPU 的处理速度越快,代码跑起来也越流畅。 内存:最低配置 32MB,建议使用 64MB 以上内存,如果使用 Windows 2020 或 Windows XP 建议使用 128MB 以上内存。 硬盘空间:至少需要 200MB 以上的硬盘空间。 基于 9 软件要求 操作系统: Windows8。 数据库名称:。 基于 10 第 2 章 可行性分析 经济可行性 开发此社交网站的所需的硬件(计算机其其他)由本人提供。 软件环境 开发工具和 MongoDB 可以从网上下载。 本系统的开发、维护由本人负责,因此没有其他方面的支付,开发成本主要是时间成本。 系统完成后可作为人们分享文章知识文化等使用。 本系统可带来的效益将远远大于本系统的开发成本,所以从经济方面上看,开发此系统是可行的。 操作可行性 此社交网站具备清新友好的用户界面,操作简单,使用方便、快捷,功能丰富,易于维护。 无论用户是网络达人,或者 还是一个网络新手,在此网站注册登录后,都可以很快熟悉该网站,并迅速成为分享达人。 从用户操作方面看,此系统的开发是可行的。 技术可行性 系统使用的模式 本系统采用的模式为 B/S 模式。 B/S 模式简介 B/S( Browser/Server,浏览器 /服务器)模式又称 B/S 结构。 它是随着 Inter 技术的兴起,对 C/S 模式应用的扩展。 在这种结构下,用户工作界面是通过浏览器来实现的。 B/S模式最大的好处是运行维护比较简便,能实现不同的人员,从不同的地点,以不同的接入方式(比如 LAN, WAN, Inter/Intra 等)访问和操作共同的数据;最大的缺点是对企业外网环境依赖性太强,由于各种原因引起企业外网中断都会造成系统瘫痪。 B/S 结构利用不断成熟和普及的浏览器技术实现原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。 这种结构更成为当今应用软件的首选体系结构, B/S 结构以 TCP/IP 协议为基础的,企业内的 WWW 服务器可以接受安装有 Web 浏览程序的 Inter 终端的访问,作为最终用户,只要通过 Web 浏览器,各种处理任务都可以基于 11 调用系统资源来完成 ,这样大大简化了客户端,减轻了系统维护与升级的成本和工作量,降低了用户的总体拥有成本。 系统使用的开发语言 本系统展现与布局使用了 、 HTML CSS Jquery。 HTML5 简介 HTML 即超级文本标记语言,超级文本标记语言是标准通用标记语言下的一个应用,也是一种规范,一种标准, 它通过标记符号来标记要显示的网页中的各个部分。 网页文件本身是一种文本文件,通过在文本文件中添加标记符,可以告诉浏览器如何显示其中的内容(如:文字如何处理,画面如何安排,图片如何显示等)。 浏览器按顺序 阅读网页文件,然后根据标记符解释和显示其标记的内容,对书写出错的标记将不指出其错误,且不停止其解释执行过程,编制者只能通过显示效果来分析出错原因和出错部位。 但需要注意的是,对于不同的浏览器,对同一标记符可能会有不完全相同的解释,因而可能会有不同的显示效果。 HTML5 是超文本标记语言( HTML)的第五重大修改,这是一项正在进行中的一个草案,目前还没有正式的标准。 HTML5 赋予网页更好的意义和结构,支持 Html5 的浏览器包括 Firefox(火狐浏览器), IE9 及其更高版本, Chrome(谷歌浏览器), Safari, Opera等;国内的傲游浏览器( Maxthon),以及基于 IE 或 Chromium( Chrome 的工程版或称实验版)所推出的 360 浏览器、搜狗浏览器、 浏览器、猎豹浏览器等国产浏览器同样具备支持 HTML5 的能力。 从 2020 年 12 月 27 日至今,进行了多达近百项的修改,包括 HTML和 XHTML 的标签,相关的 API、 Canvas 等,同时 HTML5 的图像 img 标签及 svg 也进行了改进,性能得到进一步提升。 由于 HTML5 语言的特殊性,本系统只在部分功能模块上使用了, HTML5 的新特性。 CSS3 简介 CSS 即 层叠样式表( Cascading StyleSheet)。 在网页制作时采用层叠样式表技术,可以有效地对页面的布局、字体、颜色、背景和其它效果实现更加精确的控制。 只要对相应的代码做一些简单的修改,就可以改变同一页面的不同部分,或者页数不同的网页的外观和格式。 CSS3 是 CSS 技术的升级版本, CSS3 语言开发是朝着模块化发展的。 以前的规范作为一个模块实在是太庞大而且比较复杂,所以,把它分解为一些小的模块,更多新的模块也。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。