搜索详情-毕业论文网

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回

基于node.js的网络书友平台的设计与实现毕业论文

 2020-02-23 18:24:57  

摘 要

针对目前数字出版行业市场前景良好,但行业发展速度缓慢的现状,本课题拟结合目前较为前沿的技术,开发出给用户提供良好用户体验的读书交流平台,从而为读者提供传统媒体不能做到的阅读之外的体验,让用户能够通过平台发表自己读完某本书之后的看法,并且用户之间能够相互沟通想法。

本文介绍了node.js的相关特性,在分析其适用场景以及优点和缺点的基础上,讨论了node.js适合高并发I·O操作的系统的特性。论文分析了MongoDB与传统数据库的不同点和它的优势所在,并选取非关系型数据库——MongoDB作为书友平台的系统数据库,以提供更高的插入速度,提供处理更大规模表单内容的能力。系统前端部分,经分析对比angular与其他框架的特性之后,选取angular作为系统前端框架,完成系统模块、组件以及路由的划分和构建。论文还详细介绍了系统的需求分析、功能设计、系统框架的设计搭建、数据库设计和系统的编码实现以及系统测试。

关键词:数字出版;node.js;angular;书友平台

Abstract

In view of the current good market prospects for the digital publishing industry, but the slow development of the industry, this project intends to develop a reading and exchange platform that provides users with a good user experience in combination with the current cutting-edge technologies, thus providing readers with traditional media that cannot be achieved Reading experience. Allows users to publish their views after reading a book through the platform, and users can communicate ideas with each other. This article mainly carried out the following work:

In this paper, the characteristics of node.js are introduced, and on the basis of its application scene and its advantages and disadvantages, the characteristics of node.js system suitable for high concurrent I / O operation are discussed. This paper analyzes the differences between MongoDB and the traditional database and its advantages, and selects the non relational database, MongoDB as the system database of the book friend platform, to provide higher insertion speed and provide the ability to deal with the content of the more large-scale forms. After analyzing and comparing the characteristics of angular and other frameworks, the front part of the system selects angular as the front frame of the system, and completes the division and construction of system modules, components and routing. The paper also introduces the system requirements analysis, function design, system framework design, database design, system coding implementation and system testing.

Key Words:Digital Publishing; Node.js; Angular; Platform for reading friends;

目 录

第1章 绪论 1

1.1研究背景 1

1.2 国内外发展现状 1

1.2.1 数字出版 1

1.2.2 开发方式 2

1.3 课题设计的目的及意义 3

1.4 课题研究内容及技术路线 3

第2章 需求分析 5

2.1 用户需求分析 5

2.2 功能需求分析 5

2.2.1 系统目标 5

2.2.2 功能需求 5

2.3 非功能性需求分析 6

2.4 设计约束 6

第3章 基于Node.js的网络书友平台系统设计 7

3.1 技术简介 7

3.2 书友平台系统设计 10

3.3 数据库设计 10

第4章 网络书友平台系统实现 12

4.1 系统开发环境介绍 12

4.2 文件夹组织结构 12

4.2.1 前端文件夹组织结构 12

4.2.2 后端文件夹组织结构 13

4.3 系统主要界面介绍 14

4.3.1 系统登录注册界面 14

4.3.2 系统主页 15

4.3.3个人主页 16

4.3.4发表文章页面 18

4.3.5 文章详情页面 18

第5章 系统测试 21

5.1 测试方法 21

5.2 单元测试方法 21

5.3 白盒测试方法 21

5.4 黑盒测试方法 21

5.5 测试用例 21

5.5.1 注册登录组件 21

5.5.2 系统主页组件 22

5.5.3 个人主页组件 22

5.5.4 发表文章组件 23

5.5.5 文章详情组件 23

第6章 总结和展望 25

参考文献 26

致谢 27

绪论

本章主要从本课题的研究背景、课题的目的以及意义、国内外研究现状、课题研究的基本内容、目标这几个方面来对本课题进行简明扼要的阐述。

1.1研究背景

  • 数字出版

数字出版行业是在计算机、通信、网络以及流媒体、显示等等技术等高新技术基础上创建起来的,在很多方面融合并超过了传统的出版行业,相对于传统出版行业,也正是因为这些高新技术的优势,数字出版能够将内容数字化,同时把生产和运作的流程搬到线上来,将传统媒体的传播媒介转移到新媒体上来,使得读者能够在新媒体、新设备上有新的阅读、消费体验[1]。近年来,数字出版行业发展神速,但是很大一部分的数字化出版仅仅停留在将线下资源搬到线上,这显然是跟不上行业发展速度的,急需将新兴技术与传统媒体结合起来才能提供更好的服务。

  • 开发方式

目前主流的开发方式已经由早些年的所有功能与业务逻辑的实现全部交于后端,变为现在的前后端分离的开发方式。在很久以前的开发过程里,似乎都没有前端这一职位,一个原因当时的前后端耦合度太高,很大一部分业务逻辑是由后端工程师把控并实现的,当时的前端只是将页面按设计的样子还原出来;还有一个重要的原因也在前端本身,那个时候JavaScript发展还不够,很多功能还没有得到发掘和普及,人们甚至只是把JavaScript当做“玩具”语言,所以前端并不能承担起复杂的业务逻辑。这样的开发方式不仅仅使前后台紧紧耦合,并导致后台人员工作的压力大大增加,开发效率变低,最关键的问题在于,这样写出来的代码非常难以维护。随着前端技术的不断发展,前端已经开始承担了系统中更多的功能,前后端分离的开发方式已经成为主流。

前后端分离之后,前端和后端耦合度变低,前端和后端可以选择的开发方式就变得灵活多样起来,不再相互依赖,通常由后端开发人员写好接口api提供给前端人员使用,完成系统与数据库之间的数据交流,实现系统的功能。

1.2 国内外发展现状

1.2.1 数字出版

2016年我国数字出版产业总收入5720.85亿元,比2015年增长29.9%。其中:互联网期刊收入达17.5亿元,电子书达52亿元,数字报纸(不含手机报)达9亿元,博客类应用达45.3亿元。在线音乐达61亿元,网络动漫达155亿元,移动出版1399.5亿元,网络游戏达827.85亿元,在线教育达251亿元,互联网广告达2902.7亿元[2]

目前国内的数字出版很大一部分是将传统的纸质文献数字化呈现在读者面前,比如很多报刊有网站上以pdf形式展现的电子版,很多书籍也有电子版本售卖。也有许多在线出版的网站不仅仅是简单的将线下带到线上,他们还拥有自己的线上内容,例如盛大文学。盛大文学作为中国最大的网络文学平台,充分利用了它的大量优质内容和社区以及庞大的用户群体作为优势,以一己之力推动了数字出版行业的发展,为数字出版行业的变革提供了契机,为全球用户带来数字时代全新的阅读体验。但是数字出版除了制造、产生内容,给读者不同于传统纸质书籍的阅读体验,还应该综合利用现在高度发展的各项技术,为读者制造除了自己一个人阅读内容以外的功能。这些网站并没有建立一个具有良好交互性的生态,给读者体会到数字出版带来的和传统出版业不一样的体验。

1.2.2 开发方式

前后端分离后,由于前后端之间不再像以前那样过分耦合,双方在技术上的选择就多了起来。前端发展迅速,从web1.0到现在的web2.0,前端发生了巨大的变化,多种多样的框架正在蓬勃发展,后端也是如此,在发展的过程中,一个基于JavaScript语法的后端语言诞生了。现代浏览器的改进和HTML5的标准化等技术成就,导致了先进的网络应用程序的创建,提供了以前仅适用于本地应用程序的功能。这种与网络的巨大互动现象带来了一些需要解决的问题。基础设施软件必须发展以满足服务需求。“云计算”是当前计算范式,建立在共同创建内容和服务的概念上,而实时客户端-服务器数据交换(即WebSocket协议)有希望的协议已于2011年12月标准化。由于JavaScript是用于客户端编程的最常用和主要的Web技术之一,服务器端JavaScript(即2009年5月的Node.js)的诞生通过使用相同的语言实现端到端,提供了客户端-服务器编程集成的潜力。那么纯JavaScript是构建现代Web应用程序的可行选择吗?

IK Chaniotis等人在2015年的研究中,通过了一个完全用JavaScript构建的社交网络应用程序比较并评估了Node.js与两个使用最为广泛的开源Web服务器Apache和Nginx的性能,研究结果和结果结合起来,以便得出结论:JavaScript是否是构建现代Web应用程序的端到端系统的最佳方式,从基础架构层到用户体验,非常轻松高效,而不仅仅是短暂的趋势。

他们在论文中指出,根据性能评估,Node.js缺乏使用内置HTTP服务器来提供静态文件,而Nginx在此任务中表现出色。因此,为了解决这种体系结构中的效率问题,将Nginx服务器置于前台和代理静态文件请求可能是明智之举,从而允许Node.js进程仅处理动态内容。这样的配置在效率和可扩展性方面提供了更好的基础架构,取代了老旧的PHP/Apache堆栈。总体网络流量和社交网络应用程序的增加是进一步研究基础架构的原因,因为它会影响企业和个人。目前社交网站的状态是垄断的,但免费技术和开源工具带来了更多机会,使开发人员能够构建新颖的服务和应用程序。WebRTC的出现有可能被企业和个人使用,通过网络提供无服务器实时通信,使得服务器端带宽费用过时[3]

1.3 课题设计的目的及意义

人们对知识的获取,不仅仅是文献中阅读而得来,新的想法诞生是需要相互交流和思维碰撞的,本课题拟构建的网站旨在帮助人们更好地从交流中找到和自己兴趣相近的读者,以便能够交换想法,体验到数字出版带来的传统阅读达不到的体验。相对常见的电子资源形式的数字出版,该网站能够让用户之间有更多的互动,在互动中交流想法、学习或者是交到志同道合的朋友。

同时,在本课题的系统实现过程,选取了前端新兴的angular 5 框架,并且学习了JavaScript的超集:typescript的语法,深入了解了angular的模块、组件、服务、路由以及依赖注入等功能。同时学习node.js以及其框架express的相关知识,学会使用node.js构建轻量、高效的服务,配合angular框架开发出用户体验良好、利于维护的网站。

1.4 课题研究内容及技术路线

本课题研究的内容主要如下:

  1. 分析书友网站需求,一步步理解系统功能需求,理解用户需要使用这个系统干什么,这个系统能够为用户提供什么,从而确定出系统需要做什么。
  2. 系统架构设计,系统采用bs架构,后端用node.js为前端提供API,设计好数据库结构,前端采用angular 5框架构建页面。
  3. 完成数据库结构设计及实现、服务器的搭建以及api的开发和调试、前端架构设计以及模块、组件划分。
  4. 完成该系统的所有开发并且通过测试。

技术路线图如图1.1所示。

研究背景、研究现状探索

分析系统需求

设计系统结构

前端架构设计

后端架构设计

前端编码实现

后端编码实现

系统集成与测试

图 1.1 技术路线图

需求分析

本章内容主要罗列了对整个系统的需求分析,其中包括了用户需求分析、功能性需求分析和非功能性需求分析以及设计约束。

2.1 用户需求分析

本系统面向的用户,主要是各类书籍的读者,本系统希望能够给读者提供一个体验良好的平台,让读者在阅读完书籍之后能够和兴趣相近的人互相交流并传达自己的想法,在沟通和思维碰撞的过程中有新的发现,收获到阅读之外的东西。同时用户在分享自己的笔记或者文章的时候,还可以起到一个记录、留存的作用。

2.2 功能需求分析

2.2.1 系统目标

1. 用户信息的管理:包括用户的注册、登录,用户个人信息(头像、密码、个人简介)的管理;用户消息的管理;用户关注管理等

2. 文章信息的管理:包括文章的发布、删除、查询等等

3. 评论以及回复信息的管理:包括用户进行评论、回复,删除评论、回复以及评论回复的消息提醒等

2.2.2 功能需求

1. 用户模块:

  1. 根据用户名作为唯一标识来注册用户
  2. 通过用户名获取用户信息
  3. 给某用户添加一条消息,显示评论或回复内容
  4. 获取某用户所有消息
  5. 删除用户消息
  6. 获取用户关注列表以及用户添加、取消关注的功能
  7. 更新用户的基本信息

2. 文章模块:

  1. 文章的创建、删除以及查询功能
  2. 文章的模糊搜索功能
  3. 文章的浏览量更新功能
  4. 获取某用户所有文章

3. 评论、回复模块:

  1. 获取某文章下的评论、回复
  2. 添加评论、回复的功能以及其删除功能

2.3 非功能性需求分析

  1. 速度需求:前端页面切换流畅、无卡顿,api请求数据响应时间应在2s以内,后端选用了node.js来做服务,其轻量高效、异步驱动的特性能够保证响应的速度。
  2. 运行环境:为用户考虑应兼容大多数主流浏览器。
  3. 编码规范:编码应符合一定标准、风格统一、有良好注释,代码可维护性高。
  4. 系统可靠性: express框架下运行的node.js服务,能保证7x24小时的可靠运行。

2.4 设计约束

  1. 系统开发需使用MongoDB完成数据管理功能。
  2. 系统在Windows系统上运行,兼容大多数现代浏览器。

基于Node.js的网络书友平台系统设计

本章对系统所用的相关技术做了详细的介绍,展现了整个网络书友平台系统设计的过程以及数据库设计的过程。

3.1 技术简介

  • JavaScript简介

整个项目都是以JavaScript为基础的,Node是服务端的JavaScript,了解node之前必定要先了解JavaScript。JavaScript是一门重要的语言,它是浏览器的语言,是web的核心。JavaScript不是所谓的主流语言,也是一门很神奇的语言。很多人将这门语言看做“玩具”语言,因为他们认为不需要深入了解这门语言,就能用它来完成需要的工作。事实上,它不仅仅很完善,还有用很强的表现能力 [4]。近年来,JavaScript在计算机编程届内的地位一直在不断提升,随着Douglas Crockford等人的发掘和传道,这门语言的高级模式变得越来越普遍。随着Ajax的发展,JavaScript也变得灵活多样起来,大量的库、框架也如雨后春笋般出现,它们扩充了JavaScript本来不具备的功能,包括对文档对象模型中元素的各种操作、模块功能的引入,让工程结构更加清晰,甚至引进了JavaScript设计之初并没有涉及到的依赖管理、面向对象编程等特性[5]

此外,各种浏览器的运行、解析速度比以前流行的IE的JavaScript解释器要快很多,例如Mozilla Firefox,Google Chrome,Apple Safari等。其中Google开发的V8引擎,速度达到了巅峰[6]

到了服务端的领域,大规模的并发的需求变得越来越多,此时JavaScript事件驱动的异步机制似乎占据了得天独厚的优势,这便是Node.js诞生的契机。

  • Node.js简介

JavaScript语言主要是运行在浏览器中的,实质上浏览器只是为js提供了一个上下文,它定义了coder可以使用JavaScript的哪些特性和方法等,但并没有以条条框框的形式规定我们只能用JavaScript语言本身去实现什么样的功能。可以说,JavaScript是一个各方面都相对“完整”的语言:它可以使用在不同的环境中使用,其能力与其他编程语言相比并不逊色,甚至很多地方有它独特的优点。

现在再来看Node.js,它从语法本质上讲还是JavaScript,但是它是运行在另一环境下的JavaScript。Node.js能够为JavaScript提供运行环境,使其可以脱离浏览器,在后端运行,再加上node.js实现并封装好的一些方法,从而达到在后端开发的目的。要做到不在浏览器而在后端运行JavaScript代码,编写出来的代码首先需要被解释或者说是被编译,然后才能正确的执行。Node.js的原理正如上所述,它使用了Google的V8 JavaScript引擎,来解释并执行JavaScript代码,在速度上和主流浏览器相比有绝对的优势。node.js还包含了es6的重要新特性如Promise等等[7]

以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。

相关图片展示:

您需要先支付 80元 才能查看全部内容!立即支付

课题毕业论文、开题报告、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。