热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

基于Node.js和vue的博客系统的设计与实现

摘要随着互联网技术的高速发展,人们生活的各方面都受到互联网技术的影响。现在人们可以通过互联网技术就能实现不出家门就可以在线发布博客文章,简单、快捷的方便

摘要

随着互联网技术的高速发展,人们生活的各方面都受到互联网技术的影响。现在人们可以通过互联网技术就能实现不出家门就可以在线发布博客文章,简单、快捷的方便了人们的日常生活。同样的,在人们的工作生活中,也需要互联网技术来方便人们的日常工作生活,实现工作办公的自动化处理,实现信息化,无纸化办公。

本课题在充分研究了采用B/S模式,以express为开发框架,Node.js为开发语言、Vscode为开发工具,MySQL为数据管理平台,实现博客系统中的用户、文章分类、博客文章、留言板等功能。

关键词:博客系统;express框架;Mysql数据库;Node.js语言

Abstract

With the rapid development of Internet technology, all aspects of people's life are affected by Internet technology. Now people can publish blog articles online without leaving home through Internet technology, which is simple and fast to facilitate people's daily life. Similarly, in people's work and life, Internet technology is also needed to facilitate people's daily work and life, realize the automatic processing of work and office, and realize information and paperless office.

This topic fully studies the use of B / S mode and express as the development framework, node JS is the development language, vscade is the development tool, and MySQL is the data management platform to realize the functions of users, article classification, blog articles, message board and so on in the blog system.

Keywords: blog system; Express framework; Mysql database; Node. JS language

目 录

1 绪论 PAGEREF _Toc32748 1

1.1 选题的背景 PAGEREF _Toc21944 1

1.2 研究的主要内容 PAGEREF _Toc10698 1

1.3 系统开发的意义 PAGEREF _Toc26081 1

1.4 初步设计方法与实施方案 2

1.5 本文研究内容 2

2 开发环境和相关技术 3

2.1 系统的开发环境 3

2.2 技术路线 3

2. 2. 1 express框架 PAGEREF _Toc18090 2

2.2.2 B/S结构 PAGEREF _Toc9848 3

2.2.3 Mysql介绍 PAGEREF _Toc10417 3

2. 2. 4 Node.js语言 PAGEREF _Toc13707 4

3 系统的可行性研究及需求分析 5

3.1 可行性研究 5

3.1.1 经济可行性分析 5

3.1.2 技术可行性分析 5

3.2 需求分析 PAGEREF _Toc18737 5

3.2.1 用户需求分析 5

3.2.2 功能需求分类 6

3.2.3 网站性能需求分析 6

3.3 系统流程分析 6

3.4 网站现状分析 8

4 系统的总体设计与实现 10

4.1 总体设计 10

4.2 数据库设计 11

4.2.1 概念模型设计 11

4.2.2 物理模型设计 12

5 系统的详细设计与实现 17

5.1 管理员功能模块 17

5.2 前台功能模块 21

5.3 用户后台功能模块 21

6 系统测试 25

结论 27

致谢 28

参考文献 29

1 绪论

1.1选题的背景

随着电子技术的普及和快速发展,线上管理系统被广泛的使用,有很多机构或、网站等都在实现电子信息化管理,博客系统也不例外,由比较传统的人工管理转向了电子化、信息化、系统化的管理。

传统的线下发布博客文章,一开始都是管理者进行手工记录,然后将手工记录的信息进行存档;随着电脑的普及,博客文章演变成了手工记录后,输入电脑进行存档。这两种管理方式,对管理者来说工作量大,后期博客文章的管理还需要花费大量时间。而且这种传统管理的方式,容易出现遗失或因为失误输入错误的信息等等。在这些基础上,我把用Node.js语言开发的博客系统作为我的毕业设计,希望可以解决传统博客文章中出现的问题,简化管理者的工作,对各种信息进行系统化、电子化的管理。

1.2 研究的主要内容

研究的基本内容:本设计主要是实现一个博客系统,实现博客系统的自动化、信息化、管理。系统的主要的设计原则是:以实际应用为核心,重点突出“实用、易用、简洁、稳定”的优点。既能够注重到实效,满足现实用户的实际需要,也能够为系统以后的升级和扩展留有一定的余地。在技术设计的实现上,突出“实现合理、结构清晰、简单易懂”的特点。

本系统的主要目的在于加速博客文章的信息化进程,充分利用计算机技术和现代通讯的手段面向网站或其他企业的服务。建立网站信息交流平台,方便网站内部信息资源的共享,加强用户与管理员之间的交流。提高博客文章效率,为用户提供在线发布博客文章服务。本系统将最大程度地提高博客文章效率,降低管理和工作的成本,改善工作的环境和条件,提高网站的管理和决策的自动化和科学化水平。帮助网站节省费用,减少中间环节,优化业务流程,提高整体效率,促进管理的进步。

1.3 系统开发的意义

随着互联网技术的发展,人们的生活无处不在的受到互联网技术影响,而互联网技术给人们生活带来的便利是不言而喻的。对于现代化的博客系统而言,它的目的并不是只减少管理者的工作量,而是让管理者们从填写繁琐的信息过程中解脱出来,将更多的关注点放到关注用户的需求等上去,这样就可以提高博客文章效率,提高管理员工作效率,所以开发本系统是十分有意义的。

1.4初步设计方法与实施方案

软件体系结构方案:由于本系统需要在不同设备上都能运行,而且电脑配置要求也要越低越好,为了实现这一要求,经过考虑B/S结构成为最佳之选。使用B/S结构的系统可以几乎在任何电脑上运行,只要浏览器可以正常工作就可以正常运行该系统,而且后期维护及二次修改较为容易,符合要求。

操作系统方案:Windows10操作系统,该系统是目前微软公司推出的最新系统,目前大多数市面上的电脑都使用该系统,并且该系统功能完善,兼容性好。开发工具:选用 Vscode、Node.js开发语言。

1.5 本文研究内容

本文主要分为七个章节,第一部分为绪论,主要介绍了目前电脑技术发展状况,分析传统博客文章的弊端以及使用信息技术来管理博客文章信息的好处。

第二部分为相关技术简介,主要介绍了各技术的发展历程,技术发展现状,技术优点以及选用该技术的原因等。

第三部分为系统分析,主要分析了软件设计所需要的功能。

第四部分为系统设计,主要进行了系统的架构设计、数据库设计等。

第五部分为系统详细设计。

第六部分为系统调试与测试,利用测试方法进行可行性测试、性能测试、系统测试等。

第七部分为总结与致谢,主要总结了程序设计的完成过程及完成情况,比对完成设计过程中施以援手的同学和老师表达中心的感谢和祝愿。

2 开发环境和相关技术

2.1系统的开发环境

博客系统的开发环境主要有:

开发框架:express

语言:Node.js

数据库:mysql

开发软件:Vscode

浏览器:谷歌浏览器

2.2技术路线

2.2.1 express框架

Express是一个简洁而灵活的node.js web框架,提供了一系列强大特性帮助你创建各种web应用,和丰富的HTTP工具。使用Express可以快速地搭建一个完整功能的网站。

1.express框架的特性

  • (1)可以设置中间件来响应HTTP请求;

  • (2)定义了路由表用于执行不同大的HTTP请求动作;

  • (3)可以通过向模板传递参数来动态渲染HTML页面;

2.2.2 B/S架构

B/S的系统是通过能上网的电脑就可以使用,它最大的优点是不需要安装专门的软件,首先浏览器向服务器发出请求,然后服务器处理请求把信息再返回给浏览器。不需要再次对数据进行存取与计算数据,只要负责显示数据来降低要求,如果说用户端像个“瘦子”,而服务器会越来越“胖”。B/S体系结构与C/S体系结构相比,最大的不同是:B/S体系的应用软件使用网络浏览器作为与用户交互的平台,而C/S则需要开发专用的应用程序。

2.2.3 MySQL 介绍

在软件项目,通过经营性数据的数据库,可以保证其安全,独立和数据一致,访问数据的系统来提供,所以有效减少时间程序员开发应用程序。

MySQL可以支持多线程,可以方便使用系统的资源,提高运行的速度。并提供odbc、jdbc和tcp/ ip,以各种形式连接到MySQL; 功能方面表现欠缺,规模小,但对于这个系统就足够了。

因为MySQL是源代码对外开放的,所以任何人都可以通过相应的方法下载,并根据个性化需求进行修改。 由于MySQL的速度,可靠性和适应性,MySQL受到重视。

MySQL虽然功能可能不是很强大,但由于其开源,广泛传播,导致很多人都意识到这个数据库。

2.2.4 Node.js语言

Node.jsScript 这门语言的设计虽然被很多人诟病,但是因为其占据了浏览器而且容易上手所以广泛流行。后来随着 Node.js 的出现,npm 包管理带来的强大生态更是如虎添翼(截止到 2017 年 3 月 npm 共有 43 万个包)。但是这也造成了 JS 社区变态的快速迭代,大家都直呼赶不上,框架太多,选择太多,眼花缭乱。

Node.js非常适用于Web开发,但是现在无论是一个网站,还是Web 小程序都已经成为包括很多不同部分,如前端、数据库、业务模块、功能模块等等的大型项目,使用Node.js从零开始进行Web开发,也许大中型团队能够 胜任,但对于个人和小型团队来说是不现实的。这时候框架就成为Web开发利器,对于个人开发来说几乎是必不可少。

3系统的可行性研究及需求分析

3.1 可行性分析

可行性分析是系统开发过程中的的非常重要的一步,可行性研究是指在开发系统时,先对整体系统的所有的需求,所需要使用的技术和在开发时候需要用到的方法,以及开发所需要的的人员,资金等各方面的综合考虑之后,再对该系统是否符合实际开发的要求进行评估,满足实际要求之后再进行实际的开发工作。一般的可行性分析包括:技术可行性、经济可行性可行性等;

研究的目的就是使用最小的代价和最短的时间来确定问题是否能够完善解决。该系统的可行性分析主要包括以下几个方面的内容。

3.1.1 经济可行性分析

博客系统,主要面向的是电脑用户,成本并不高,对于系统的维护和调试,只需要一个人就可以完成,所以在人力方面,投入的也很少。虽然说人力和资金的投入并不多,但是面临的收益是十分可观的,在21世纪,很多企业、公司等都会将管理的目标转移到线上管理,知识是无价的。在未来,很多企业投入的人力资源和资金不会太多,但却又能保证企业运转继续进行。这对整个企业的发展是非常有利的。

3.1.2 技术可行性分析

博客系统的开发使用了比较成熟的开发的模式。使用Vscode作为开发工具,数据库使用MySQL。以Node.js语言为基本,使用express框架搭建工程环境,结合自身的实际项目开发能力,完全可以开发出比较完善的博客系统。

3.2 需求分析

3.2.1用户需求分析

用户根据账号登陆进入博客系统,系统根据用户的角色展示相应的功能权限。用户进入系统前台后,可以查看博客文章等,还能在线留言等。用户点击后台管理,可以修改个人信息和密码,可以发布博客文章等操作。

管理员拥有系统所有功能权限,可以对所有信息进行相应操作。

3.2.2 功能需求分析

根据一般博客系统的功能需求分析,本系统的功能模块如下:

(1)在个人中心,管理员可以修改自己的用户名和登录密码。

(2)在用户管理模块中,可以查看用户的信息,和进行修改、删除。

(3)在博客文章管理模块中,管理员添加博客文章信息进行详情、修改、删除、审核。

(4)在系统管理模块,管理员可以对轮播图管理、关于我们、联系我们进行添加、修改和删除。

3.2.3 网站性能需求分析

对网站性能进行分析,可对系统反应度、界面简洁清晰度、储存能性、易学性和稳定性进行分析;

系统反应度:同时上万人在线时反应时间应该在两三秒以内。

界面简洁清晰:系统界面要求简单明了,操作简单,用户操作容易上手。

储存性能高:博客系统中需要存储的信息有很多,所以对系统的存储量要求很高,因此数据库就应该很强大,才能保证信息能安全稳定的进行存储;

易学性:该系统在操作上必须简单好上手,没有很多复杂的操作,只需要简单的进行学习就能操作该系统。

稳定性:要求博客系统运行要稳定,界面清楚、字体清晰等。

3.3系统流程分析

由于不同的系统实际使用用户角色的不同,他们的业务分析也会变得有所不一样,为了论述方便接下来都将以管理员、用户功能权限下的系统业务流程来分析,如下图所展示:



推荐阅读
  • WhenIusepythontoapplythepymysqlmoduletoaddafieldtoatableinthemysqldatabase,itdo ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • 本文介绍了在使用Laravel和sqlsrv连接到SQL Server 2016时,如何在插入查询中使用输出子句,并返回所需的值。同时讨论了使用CreatedOn字段返回最近创建的行的解决方法以及使用Eloquent模型创建后,值正确插入数据库但没有返回uniqueidentifier字段的问题。最后给出了一个示例代码。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • ALTERTABLE通过更改、添加、除去列和约束,或者通过启用或禁用约束和触发器来更改表的定义。语法ALTERTABLEtable{[ALTERCOLUMNcolu ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 深入理解Kafka服务端请求队列中请求的处理
    本文深入分析了Kafka服务端请求队列中请求的处理过程,详细介绍了请求的封装和放入请求队列的过程,以及处理请求的线程池的创建和容量设置。通过场景分析、图示说明和源码分析,帮助读者更好地理解Kafka服务端的工作原理。 ... [详细]
  • 本文讨论了在使用sp_msforeachdb执行动态SQL命令时,当发生错误时如何捕获数据库名称。提供了两种解决方案,并介绍了如何正确使用'?'来显示数据库名称。 ... [详细]
  • 先看官方文档TheJavaTutorialshavebeenwrittenforJDK8.Examplesandpracticesdescribedinthispagedontta ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • 微软评估和规划(MAP)的工具包介绍及应用实验手册
    本文介绍了微软评估和规划(MAP)的工具包,该工具包是一个无代理工具,旨在简化和精简通过网络范围内的自动发现和评估IT基础设施在多个方案规划进程。工具包支持库存和使用用于SQL Server和Windows Server迁移评估,以及评估服务器的信息最广泛使用微软的技术。此外,工具包还提供了服务器虚拟化方案,以帮助识别未被充分利用的资源和硬件需要成功巩固服务器使用微软的Hyper - V技术规格。 ... [详细]
author-avatar
浅小影HLGC_215
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有