基于node.js的萤火虫旅行社的设计与实现

基于Node.js的萤火虫旅行社的设计与实现

摘要:改革开发的春风给旅游业的发展插上了腾飞之翅,旅游业成为朝阳企业中最闪耀的新星。中国的旅游业的规模不断扩大,经济效益持续新增长意味着我们已从旅游资源短缺迈入旅游经济大国行列。旅游开发在我国市场经济中的产业地位和经济管理功能逐步增强,对国民企业经济增长的作用日益重要。
近年来,我国科学技术的快速发展,互联网也进入了一个新的阶段,各行各业都与之挂钩并且有了更为深入的融合与渗透。而且人们大量、便捷发布、获取和传递信息的渠道也是互联网,它给我们在政治、经济、生活等方面都带来了便捷。为了适应社会的发展,各行业都做出了相应的改变。传统旅游企业的宣传已经远远不能满足现有的市场需求,互联网的飞速发展是提供一种方式来提供的旅游和商业的新渠道。经济发展水平的提升从而也使得中国人民的生活质量水平得到了极大的提高。随之而来的就是人们想要通过追求更加多样化的方式从而使得他们的假期可以让他们有一次与众不同且难以忘怀的体验,而外出旅游则成了大多数人民首要的选择之一。目前市场上已经有很多介绍旅游景点,报团出游的旅游网站了,但是市面上比较少有适合自驾游或者自由行旅游网站,而萤火虫旅行社就是这样子的一个平台,该网站适用于自驾游或者自由行的旅客,网站可以通过其他旅客的旅行经历给到那些即将想去某个旅游景点的旅客们提供一个更为详细且全面的介绍。
本网站是一个依赖互联网、轻量、便捷的旅游信息发布,分享旅游过程趣味记忆的平台。系统开发过程中所用到的技术主要是node.js,采用Express框架构造函数对功能进行构建。本系统包括登录注销模板、旅游信息的发布模板、景点风景图欣赏模块、景点讨论区模块以及后台信息维护的模块。
关键词:旅游网站 自驾游 node.js express ejs mysql

Design and implementation of firefly travel agency based on node.js
Abstract: The spring breeze of reform and development has added wings to the development of tourism, and tourism has become the most shining star among Chaoyang enterprises. The scale of China’s tourism industry continues to expand, and the continuous new growth in economic benefits means that we have moved from a shortage of tourism resources to a rank of a major tourist economy. The industrial status and economic management functions of tourism development in China’s market economy are gradually strengthened, which is increasingly important for the economic growth of national enterprises.
In recent years, with the rapid development of science and technology in China, the Internet has entered a new stage. The development of informatization drives the development of other industries, and all walks of life are linked to it and have a deeper integration and penetration. And the channel through which people publish, obtain, and transmit information in large quantities and conveniently is also the Internet, which brings us convenience in politics, economy, and life. In order to adapt to the development of society, various industries have made corresponding changes. The propaganda of traditional tourism enterprises has been far from meeting the existing market demand. The rapid development of the Internet is a new way to provide tourism and business. The improvement of the level of economic development has also greatly improved the quality of life of the Chinese people. What follows is that people want to pursue a more diversified approach so that their vacation can give them a unique and unforgettable experience, and traveling has become one of the first choices of most people. At present, there are already many tourist sites on the market that introduce tourist attractions and travel groups, but there are few sites on the market that are suitable for self-driving or free travel. Firefly Travel is one such platform. For free travelers, the website can provide a more detailed and comprehensive introduction to those who want to go to a certain tourist attraction through the travel experience of other travelers.
This website is a platform that relies on the Internet, is lightweight, and convenient for publishing travel information and sharing interesting memories of the travel process. The technology used in the system development process is mainly node.js, which uses Express framework constructors to build functions. The system includes a login and logout template, a tourist information publishing template, a scenic landscape appreciation module, a scenic area discussion module, and a background information maintenance module.
Key words: Travel website self-driving travel node.js express EJS MySQL

目录

第1章 绪论 1
1.1 系统开发的背景及意义 1
1.2 国内外旅游网站研究现状 1
1.2.1国外旅游网站发展状况 1
1.2.2国内旅游网站发展状况 2
1.3 论文的主要研究内容 2
第2章 系统需求分析 4
2.1 系统的需求分析 4
2.2 系统的功能需求 4
2.2.1用户管理模块 5
2.2.2 旅游景点模块 5
2.2.3 旅游景点评论模块 5
2.2.4 旅游景点风景图模块 6
2.2.5 旅游攻略搜索模块 6
2.2.6 旅游攻略模块 6
2.3 数据流图 6
2.4 数据字典 7
(1)数据存储描述 7
(2)数据处理描述 8
2.5 用例图 8
2.6 实体关系图(E-R图) 9
2.7 本章小结 9
第3章 系统设计 10
3.1 系统设计 10
3.1.1 系统总体架构设计 10
3.1.2 数据库设计 10
3.1.3 系统模块的设计 14
3.2 本章小结 16
第4章 系统实现 17
4.1 用户管理模块的实现 17
4.2搜索模块的实现 20
4.3旅游攻略模块的实现 20
4.4评论模块的实现 21
4.5 本章小结 23
第5章 系统测试 24
5.1 系统测试 24
5.1.1 测试的意义 24
5.1.2 测试的目的 24
5.1.3 软件测试方法 24
5.2 测试用例及测试结果 24
5.3 本章小结 25
第6章 结束语 26
6.1 全文总结 26
6.2 课题展望 26
参考文献 27
致 谢 28

第1章 绪论

1.1 系统开发的背景及意义
据统计数据显示,2012年中国旅游行业总收入仅仅达2.58万亿元,2013年中国旅游行业总收入突破4万亿元,截止至2017年中国旅游行业总收入增长至5.4万亿元左右,同比增长15.14%[1]。
以上众多数据都说明一个现象:近十年的时间,人们的物质生活需求由于经济水平的提高而得到了满足,并且精神文化的需求也在日渐增长。随之而来的就是人们想要通过追求更加多样化的方式从而使得他们的假期可以让他们有一次与众不同且难以忘怀的体验,而外出旅游则成了大多数人民首要的选择之一。
目前市场上已经有很多介绍旅游景点,报团出游的旅游网站了,但是市面上比较少有适用于自驾游或者自由行旅游网站,而萤火虫旅行社就是这样的一个平台,该网站适用于自驾游或者自由行的旅客,网站可以通过其他旅客的旅行经历给到那些即将想去某个旅游景点的旅客们提供一个更为详细且全面的介绍。
1.2 国内外旅游网站研究现状
1.2.1国外旅游网站发展状况
国外发展旅游业比我国较早,加上十年来,世界上每个国家的经济都迅速发展起来,科学技术同样在不断革新,互联网的诞生更是催生了不少新产业的发展,比如说:旅游电子商务行业即旅游网站。互联网诞生以来为旅游业发展提供了许多机遇,加快了旅游信息的传播,销售方式的变革,对旅游业的影响真的是意义深远。
美国是旅游电子商务的先行者, 其旅游电子商务在世界上一直居于领先的地位。 2012年,美国仍然是全世界最大的B2C电子商务市场。美国不仅已经形成了规模大且相对成熟的旅游电子商务市场, 而且进入了稳健发展的增长期[14]。
别国看到美国旅游电子商务发展所带来的经济效益,也纷纷开始发展旅游电子商务行业。
1.2.2国内旅游网站发展状况
20世纪末21世纪初,中国旅行社成功建立了第一个旅游网站“中国旅游网”,此举开启了旅游新时代的序幕。虽然研究表明我国的旅游业务电商化起步晚于发达国家,但是国家的大力支持使旅游业发展迅速,加上互联网技术的不断革新,因此赶超不少发达国家,这使得我国打造了不少旅游城市,大力发展旅游业,渐渐转变成为了一个旅游大国。
电子商务旅游业在竞争中迅速发展为朝阳产业,取得喜人的成绩。仅到2014年,我国就有大大小小旅游网站890余家。
旅游网站的兴起,进一步促进了我国旅游业的发展,传统旅游业的经营模式也开始发生改变,由一开始的线下宣传为主转变为如今的线下线上同步宣传,宣传效果大大增加,旅游信息的快速传播更是带动了人们对旅游的向往,让人们可以足不出户就可以通过旅欧网站来了解旅游景点的信息,订购旅游套餐等都加速了旅游业的发展。
1.3 论文的主要研究内容
本文主要介绍了在VsCode平台上用Node.js开发一个论坛型旅游网站的过程。系统主要实现了旅游景区的信息共享,包括管理员注册登录、旅游景区查询、旅游景点信息的展示、景点论坛等几模块,相应的完成了对旅游景点文章信息的查询、用户权限分配等工作,使旅行社的信息展示与分享变得美观、方便快捷,促进人们对旅游景区景点介绍的进一步了解。本文的主要研究内容如下:
(1)利用VsCode平台、Express框架构造函数、Node.js运行环境实现论坛型旅游系统。
(2)介绍了系统实现的主要技术,包括了Express,ejs和Node.js运行环境的开发流程。
(3)本文通过长期的调查和需求分析,得知系统准确需求后在需求分析的基础上对系统进行了详细的设计,包括系统的总体架构、数据库的选取及设计和系统功能模块的设计。

第2章 系统需求分析

2.1 系统的需求分析
需求分析需要和用户达成共识,了解用户的要求,引导用户将需求描述得更加具体化,结合实际情况分析,确定系统的基本功能模块。系统性能需求分析包括了以下几个步骤:
(1)在功能方面,明确系统具体要做什么,在性能方面,确保响应时间与执行速度没有问题,用户可以在系统里完成什么操作。
(2)在系统界面方面,除了要注意输入输出的数据流格式,当系统在不同设备,面临不同的屏幕分辨率,还能否实现自动适应,不出现比例失调状况,在界面展示上用心,提高系统的易用性才能吸引更多用户,一个好的系统需求分析是一个项目成功的基础,只有基础扎实,在系统建设过程才会顺利,不会因界面的问题而拖慢系统的开发进度。
(3)在系统的开放性方面,应提前考虑到,在开发过程中,需求可能会增加或者修改,要提高系统的可维护性。
2.2 系统的功能需求
对萤火虫旅行社系统进行分析,得到以下需求,系统功能模块有用户管理模块,旅游景点模块,景点评论模块,旅游攻略模块,旅游景点风景图模块,旅游攻略搜索模块。系统的功能模块结构图如图2-1所示:
基于node.js的萤火虫旅行社的设计与实现_第1张图片

图2-1 系统的功能模块结构图
2.2.1用户管理模块
用户分为普通用户与管理员,普通用户可以对旅游景点进行评论,但是无法添加任何内容;管理员可以上传旅游攻略,添加景点图片,采纳普通用户对旅游景点的评论。
2.2.2 旅游景点模块
普通用户/管理员都可以浏览网站中给出的具体旅游景点的信息,例如旅游攻略,图片,评论。页面添加点击跳到我国的携程、途牛等著名旅游网站的友情链接,普通用户可以到国内比较著名的旅游网站参考出团价格,了解相关信息等。管理员有对数据进行删除、增加、修改等权限,负责整个系统的更新维护处理,例如更新旅游景点。
2.2.3 旅游景点评论模块
普通用户可以对景点发表自己的旅行经历、写下自己对景点相关感受或者询问已去过的用户相关推荐等的评论,普通用户对景点的评论将由管理员来采纳。
2.2.4 旅游景点风景图模块
普通用户可以浏览景点的风光图,点击小图可查看大图;图片的更新依赖管理员在后台的更新操作,管理员可对图片进行增加、删除、修改等操作。
2.2.5 旅游攻略搜索模块
普通用户/管理员可以通过站内搜索框搜索到他想要了解的信息,如果网站内有则直接显示信息,若没有则显示无相关信息;这样便于普通用户/管理员快速找到自己想要的信息。
2.2.6 旅游攻略模块
普通用户/管理员可以通过站内搜索框搜索到他想要了解的信息,如果网站内有则直接显示信息,若没有则显示无相关信息;这样便于普通用户/管理员快速找到自己想要的信息。
2.3 数据流图
基于node.js的萤火虫旅行社的设计与实现_第2张图片

图2-2 系统的数据流图
2.4 数据字典
(1)数据存储描述
表1给出了用户信息的数据流、数据来源、数据去向和数据流组成的具体数据。
表 1用户信息描述
数据流 用户信息
数据流来源 MySQL数据库中用户信息表
数据去向 系统界面,用户信息管理界面
数据流组成 用户名、用户密码
表2给出了旅游景点信息的数据流、数据来源、数据去向和数据流组成的具体数据。
表2 旅游景点信息描述
数据流 旅游景点信息
数据流来源 MySQL数据库中产品表
数据去向 旅游景点界面
数据流组成 景点ID、用户ID
表3给出了旅游攻略信息的数据流、数据来源、数据去向和数据流组成的具体数据。
表3 旅游攻略信息描述
数据流 旅游攻略信息
数据流来源 MySQL数据库中文章表
数据去向 旅游攻略界面
数据流组成 文章ID、用户ID
(2)数据处理描述
表3 描述用户通过输入用户名和密码进行身份验证处理,验证成功后将返回的数据显示在界面上。
表3用户身份验证
处理逻辑名称 用户身份验证
简述 检查输入信息的合法性
输入的数据流 用户名+密码
处理过程 验证用户输入的用户名和密码与数据库的用户表存在是否一致
输出的数据流 用户信息
2.5 用例图
用例模型的基本组成部分有用例、角色(或参与者)。
用户业务如图2-3萤火虫旅行社系统用户系统用例图。
基于node.js的萤火虫旅行社的设计与实现_第3张图片

管理员业务如图2-4萤火虫旅行社系统管理员系统用例图。
基于node.js的萤火虫旅行社的设计与实现_第4张图片

2.6 实体关系图(E-R图)
系统整体的实体ER图,用户可以浏览和搜索旅游景点、浏览景点风景图、发表评论,管理员就在系统后台对旅游景点、景点攻略以及景点风景图等进行管理与维护,详情如图2-5所示:
基于node.js的萤火虫旅行社的设计与实现_第5张图片

图2-5 系统的E-R图
2.7 本章小结
本章对萤火虫旅行社系统的整体功能进行分析,并进行了系统的功能设计。根据萤火虫旅行社系统的要求,萤火虫旅行社系统的功能的设计主要包括游客浏览旅游景点、旅游风景图、旅游景点新闻等信息。最后,文中给出了系统的数据流图、系统的数据字典以及系统的E-R图。

第3章 系统设计

3.1 系统设计
3.1.1 系统总体架构设计
互联网的快速发展与不断增长的需求带来技术上的革新,新技术不断涌现,node.js渐渐出现在我们的视线中,由于它能解决前后端语言不一致的问题。因此本系统采用了基于Node.js的Web开发框架Express, Express框架可以快速地搭建起一个具有较完整功能的网站。
Node.js本身就是一个基于事件的框架, Node.js中大部分的模块, 都继承于一个简单的事件监听器模式的实现—Event模块。Node.js借助JavaScript特有的事件驱动机制和V8高性能引擎, 使得编写高性能Web服务更加轻而易举。
3.1.2 数据库设计
萤火虫旅行社系统主要功能是对景点文章的有关信息进行处理,涉及到数据的交互,使用一个好的数据库可以增强系统的运行效果,系统所用的数据库为mysql数据库。现对系统所使用到的数据表结构进行展示。
根据第三章的系统需求分析,系统需要建立一个数据库表来保存相关的信息,如用户信息、文章信息、文章分类信息、评论信息等一些数据库,以下是对上述一些主要数据库表的设计:
(1)user(用户信息)表
用户信息表,用于保存用户的一些基本信息(如用户名、用户密码以及用户的权限等)。表结构如表3-1所示:

表3-1 user表
列名 数据类型 可为空 注释
id int(10) Not Null 用户id
username varchar(10) Not Null 用户名
password varchar (10) Not Null 用户密码
jurisdiction tinyint(1) Not Null 权限 1:管理员 0:普通用户
表3-1给出了存放用户信息的数据库表结构,表中各字段代表的含义在第四列“注释”中有具体描述,该表的主键为id。
(2)article(文章信息)表
文章信息表,用于保存文章的一些基本信息(如文章标题、文章正文、文章发表时间、文章热点、文章点击量、文章所属分类的id、文章缩略图等)。表结构如表3-2所示:
表3-2 article表
列名 数据类型 可为空 注释
id int(10) Not Null 文章编号
title varchar(255) Not Null 文章标题
content longtext Not Null 文章正文
time timestamp Not Null 文章发表时间
hot tinyint(1) Not Null 热门 0:非热门 1:热门
hits int(10) Not Null 文章点击量
category_id int(10) Not Null 文章分类编号
thumbnail varchar(255) Not Null 文章缩略图
表3-2给出了存放文章信息的数据库表结构,表中各字段代表的含义在第四列“注释”中有具体描述,该表的主键为id。

(3)category(文章分类)表
文章分类表用于保存文章分类的id、文章分类名称、文章分类的排序等信息,表结构如表3-3所示:
表3-3 category表
列名 数据类型 可为空 注释
id int(10) Not Null 分类编号
name varchar(255) Not Null 分类名称
index int(10) Not Null 分类排序,值越大越靠前
type varchar(50) Not Null 分类类型 article:文章 product:产品
表3-3给出了存放文章分类信息的数据库表结构,表中各字段代表的含义在第四列“注释”中有具体描述,该表的主键为id。
(4)tabs(文章标签)表
文章标签表,用于保存文章标签的一些基本信息(如标签的id、标签名称、所属文章的id等),表结构如下表3-4所示:
表3-4 tabs表
列名 数据类型 可为空 注释
id int(10) Not Null 标签id
name varchar(100) Not Null 标签名称
article_id int(10) Not Null 所属文章的id
表3-4给出了存放文章标签信息的数据库表结构,表中各字段代表的含义在第四列“注释”中有具体描述,该表的主键为id。

(5)comments(景点评论)表
景点评论表,用于保存景点评论的一些基本信息(如评论编号、发表时间、用户编号、文章编号等),表结构如下表3-5所示:
表3-5 comments表
列名 数据类型 可为空 注释
id int(10) Not Null 评论编号
time varchar(100) Not Null 发表时间
content int(10) Not Null 评论正文
uid int(10) Not Null 用户编号
article_id int(10) Not Null 文章编号
product_id int(10) Not Null 产品编号
表3-5给出了存放景点评论信息的数据库表结构,表中各字段代表的含义在第四列“注释”中有具体描述,该表的主键为id。
(6)product(旅游景点)表
旅游景点表,用于保存旅游景点的一些基本信息(如景点编号、景点名称、景点正文、发表时间、所属分类编号、缩略图等),表结构如下表3-6所示:
表3-6 product表
列名 数据类型 可为空 注释
id int(10) Not Null 景点编号
title varchar(255) Not Null 景点标题
content longtext Not Null 景点正文
time timestamp Not Null 发表时间
hot int(10) Not Null 热门 0:非热门 1:热门
hits int(10) 点击量
category_id int(10) Not Null 分类编号
thumbnail varchar(255) 缩略图
表3-6给出了存放旅游景点信息的数据库表结构,表中各字段代表的含义在第四列“注释”中有具体描述,该表的主键为id。
3.1.3 系统模块的设计
根据需求分析,萤火虫旅行社管理系统主要有用户管理、旅游景点、旅游景点问答论坛、旅游景点新闻、旅游景点风景图、站内搜索等功能模块。本小节不在此对所有的模块的实现进行介绍,主要介绍系统中用户登录模块、用户注册模块、旅游景点查询模块的设计。
1.用户管理模块
(1)用户注册模块
用户注册是用户能够登录萤火虫旅行社系统的前提,用户想体验系统完整功能必须先要进行注册。注册请求将被提交至服务端,服务端调用接口查询用户名是否存在,数据库无重复用户名,则提示“注册成功!请登录!”。用户注册流程如下,具体的流程图如下图3-1所示:
基于node.js的萤火虫旅行社的设计与实现_第6张图片

图3-1 用户注册流程图

(2)用户登录模块是特殊用户(管理员)能够进入系统后台的前提,也是用户能进行评论的前提。用户在登录界面输入账号密码,将核对输入的数据与数据库的用户表中数据是否一致,数据核对一致则登录成功,假如用户名不存在或密码错误,出现登录失败,用户重新登录。只有通过验证的特殊用户(管理员)才可以访问系统后台。
根据上面的分析,登录的具体的流程图如下图3-2所示:
基于node.js的萤火虫旅行社的设计与实现_第7张图片

图3-2 管理员登录流程图
2. 旅游攻略查询模块
旅游攻略查询是系统运行数据的来源,用户/管理员登录成功后,在首页的搜索功能栏输入搜索的信息点击搜索即可进入旅游攻略查询页面。
根据上面的分析,旅游攻略查询的流程为用户/管理员登录成功后进入首页,管理员在首页的搜索功能栏输入搜索的信息点击搜索即可进入旅游攻略查询结果页面,其具体的流程图如下图3-3所示:
基于node.js的萤火虫旅行社的设计与实现_第8张图片

图3-3 旅游攻略查询的流程图
3.2 本章小结
本章对萤火虫旅行社系统的总体设计进行了阐述,详细的介绍了Node.js,以及使用Node.js这一技术的优势所在,以及萤火虫旅行社系统的数据库设计详情,使用数据库表来保存一些相关的信息,如用户信息、文章信息、文章分类信息,展示了对用户注册、登录以及旅游景点查询模块的流程图。

第4章 系统实现

根据上一章的系统模块的设计,本章给出了它们的实现。下面分别是它们实现的界面效果。
4.1 用户管理模块的实现
下图4-1是用户注册模块实现的界面图,页面上含有注册的基本信息:用户名以及用户密码,当用户输入符合验证规则的用户名和密码,点击“注册”按钮后将进行注册操作,用户注册模块实现的界面如图4-1所示:
基于node.js的萤火虫旅行社的设计与实现_第9张图片

图4-1用户注册模块实现界面
实现主要代码:
// 加载注册页面
registerApp.get(‘/’, (req,res) => {
res.render(‘src/register’, {msg: ‘’})
})
// 实现注册操作
registerApp.post(‘/’, User.register, (req, res) => {
if(req.affectedRows > 0){
res.render(‘src/register’, {msg: ‘注册成功,请登录!’})
}else{
res.render(‘src/register’, {msg: ‘注册失败, 用户名已经存在!’})
}
})

下图4-2用户/管理员登录实现的界面图,页面上含有注册的基本信息:用户名以及用户密码,当用户输入符合验证规则的用户名和密码,点击“登录”按钮后将进行登录操作,用户登录模块实现的界面如图4-1所示:
基于node.js的萤火虫旅行社的设计与实现_第10张图片

图4-2用户/管理员登录实现界面
实现主要代码:
static login(username, password){
return new Promise((resolve, reject) =>{
let sql = ‘SELECT id, username, jurisdiction FROM user WHERE username = ? AND PASSWORD = ?’
this.query(sql, [username, password]).then(results =>{
resolve(results[0])
}).catch(err =>{
console.log(用户登录失败:${err.message})
reject(err)
})
})}
4.2搜索模块的实现
下图4-3是站内搜索模块实现的界面图,页面包含了搜索框以及搜索按钮,当用户输入好搜索的关键词后,点击“搜索”按钮将对信息进行搜索操作;如果成功搜索到相关信息将返回搜索成功页面并将搜索到的信息展示在页面,否则提示相应的信息。
基于node.js的萤火虫旅行社的设计与实现_第11张图片

图4-3 站内搜索界面
实现主要代码:
/**

  • 搜索子应用
    */
    const express = require(‘express’)
    const article = require(‘…/middleware/article’)
    const category = require(‘…/middleware/category’)
    const User = require(‘…/middleware/login’)

// 搜索子应用
const searchApp = express()
searchApp.use(User.getUser)

// 加载首页页面
searchApp.get(‘/’, [article.getListByKeyword, category.getList], (req,res) => {
let { articles, categories, user} = req
res.render(‘src/search’, {articles: articles, categories: categories, keyword: req.query.keyword, user: user})
})

module.exports = searchApp
4.3旅游攻略模块的实现
下图4-4是旅游攻略模块实现的界面图,它是查询数据库文章表中的所有记录,根据文章的分类以及文章的所属的标签筛选即可得到图4-4所示的实现界面。
基于node.js的萤火虫旅行社的设计与实现_第12张图片

图4-4 旅游攻略界面
4.4评论模块的实现
下图4-5是评论模块实现的界面图,它是查询数据库评论表中的所有记录,根据文章的id筛选即可得到图4-5所示的实现界面。
基于node.js的萤火虫旅行社的设计与实现_第13张图片

图4-5 评论模块界面

主要实现代码:
/**

  • 用户评论
  • @param {integer} article_id 文章id
    /
    static allMessage(article_id){
    return new Promise((resolve, reject) =>{
    let sql = ‘SELECT comments.time, comments.content, user.username, article.title FROM USER, comments, article WHERE user.id = comments.uid AND article.id = comments.article_id AND article.id = ?’
    this.query(sql, [article_id]).then(results =>{
    resolve(results)
    }).catch(err =>{
    console.log(查看用户评论失败:${err.message})
    reject(err)
    })
    })
    }
    /
    *
  • 用户评论
    */
    allMessage: (req, res, next) => {
    let article_id = req.params.id
    Article.allMessage(article_id).then(results => {
    req.messages = results
    next()
    }).catch(err => {
    next(err)
    })
    },
    4.5 本章小结
    本章介绍了从系统的总体架构、数据库的设计和系统部分模块设计与实现四个方面阐述了萤火虫旅行社系统的设计与实现。系统模块设计主要包括了用户注册登录模块、旅游攻略搜索模块、旅游攻略模块和景点评论模块的设计。最后,文中给出了系统模块设计中相应的实现界面。

第5章 系统测试

5.1 系统测试
5.1.1 测试的意义
软件测试是系统设计实现过程中不可缺少的一个环节,我们希望通过进行详细的系统测试来发现系统分析和设计过程中的错误。再针对发现的错误进行改进,增加系统的可用性。只有经过严密的系统测试,系统在实际投入使用过程中不出现问题,避免产生系统崩坏,造成不必要的经济损失。
5.1.2 测试的目的
测试的目的要发现系统存在的问题,再通过分析来预防系统未来有可能出现的问题,降低系统在使用过程出现问题的风险,测试是不可缺少的一个环节,系统往往会存在着许多被我们忽略的小问题,不通过测试模拟在实际使用情况下排查出问题,将会是很大的隐患,进行系统测试大大增加系统的安全性跟可靠性。
5.1.3 软件测试方法
白盒测试与黑盒测试是系统测试常用的方法,通过这个测试可以得到系统内部结构是否存在问题的结论,为保证测试的完整性,还要从动态,静态这两个方面对系统进行严苛的各个模块测试。
为确定系统的可用性,对萤火虫旅行社系统进行了三大方面测试,设计大量测试案例,对系统每个功能小模块分别进行验证,具体实验数据都符合预定期望值,系统的安全性,性能强度,性能测试都没有问题。在各种情况下,都可以保证正常运行。
5.2 测试用例及测试结果
由于系统的测试用例比较多,本小节只给出了系统的部分测试用例及相应的测试结果来说明系统测试的情况,系统测试的部分用例如下表5-1所示:

表5-1 系统单元测试的部分用例
编号 测试用例名称 测试目的 测试结果
test-1 萤火虫旅行社测试用例1 测试用户输入的账号,密码等表单信息能否正常提交 表单信息提交无异常,数据交互正常无误
test-2 萤火虫旅行社测试用例2 测试数据库连接与存储是否正常数据 数据库连接正常,可以存储数据
test-3 萤火虫旅行社测试用例3 测试管理员是否能新增文章 管理员新增文章成功
test-4 萤火虫旅行社测试用例4 测试管理员能否能新增、修改文章分类 可以正常新增、修改文章的分类
test-5 萤火虫旅行社测试用例5 测试游客/管理员能否搜索到文章 游客/管理员成功搜索到文章
test-6 萤火虫旅行社测试用例6 测试页面的链接情况是否正常,能否正常的跳转 链接正常,页面可以正常跳转,并成功的显示
test-7 萤火虫旅行社测试用例7 Cookies是否正常工作存储保存数据 Cookies正常工作数据保存成功无误
5.3 本章小结
本章首先对软件测试的意义、目的和软件测试进行了简单的介绍,再对数据库的连接情况是否正常,用户输入数据是否能正常读取,设置不同测试用例成功验证功能正常。通过实际使用系统测试功能,不仅排查出一些小问题,更加明白了系统测试的重要性。

第6章 结束语

6.1 全文总结
本文给出了萤火虫旅行社系统的开发过程。系统采用Node.js,数据库采用MySQL。而系统中用到的用例图以及体系结构图等是采用亿图图示专家软件绘制的。
论文首先阐述了系统开发中应用的关键技术和开发环境,如vscode平台、基于Node.js的Web开发框架Express的运行机制和使用其的优势等。
对萤火虫旅行社系统进行需求分析,进行了总体设计以及功能模块设计。根据萤火虫旅行社系统的要求,系统的功能的设计主要包括用户管理、景点查询、景点评论管理等几个模块。
综上所述,本文通过对Visual Studio Code开发平台、数据库MySQL、Node.js、Express框架、Bulma框架以及html等相关知识的应用,给出了一个萤火虫旅行社系统的开发实例。

6.2 课题展望
随着现代科学技术的发展,互联网技术的革新不断的深入,旅游电子商务正如旭日高升,发展前景广阔,发展潜力巨大,物质生活的日渐丰富伴随着精神文化需求的加深,旅游是心灵的放松,是当代人喜欢的释放压力途径,旅游网站有非常大的市场潜力;因此设计一个好的旅行社系统意义重大。
本系统虽然为游客提供了了解旅游景点的渠道,实现了旅游景点管理的信息化,但是还存在以下不足:
(1)系统界面过于单一。
(2)系统的安全性能不够强,不可以为系统提供一个安全系数高的访问框架。
(3)数据库的设计方面,没能对数据库的访问性能进行较好的优化。
因此,基于系统以上存在的缺点和不足,以后将对分布式系统的安全性方面和数据技术要进行深入的研究。

参考文献

[1] 赵凌冰.中国旅游网站建设现状及发展趋势分析[J].硅谷,2013,6(07):171+159.
[2] 杜波依斯. MySQL技术内幕[M]. 第4版. 人民邮电出版社 , 2011年07月
[3] Node.js开发实战详解[M]. 清华大学出版社 , 黄丹华, 2014
[4] 万里晴,杨浩.探究基于V8引擎的Node.js在各应用领域的发展[J].通讯世界,2015(13):97.
[5] 王惠.基于Node.js的旅游网站设计[J].科技经济导刊,2017(17):32.
[6] 基于Node.js的前端教程网站设计与开发[J]. 张艳,吴晓翔. 福建电脑. 2018(09)
[7] 张晓颖.试析基于Node.js的前后端分离框架的实现[J].计算机产品与流通,2018(10):24.
[8] 张鹏飞,王乾,胡晓冬,杨明浩,崔明旺.基于Node.js和JS的前后端分离实现[J].软件,2019,40(04):11-17.
[9] 周琳,刘懿锋.旅游产业与互联网融合发展研究[J].理论探讨,2019(06):114-117.
[10] 赵秀芹,刘杨青,李瑞祥.MySQL数据库使用技巧三例[J].网络安全和信息化,2019(08):90-91.
[11] 荆艳峰.“十二五”期间旅游业发展的政策解读[J].理论参考,2012(09):33-35.
[12] 我国旅游电子商务发展的现状、问题与对策[J]. 王钟庄. 价格月刊. 2013(02)
[13] 杨林.我国旅游电子商务发展的现状、问题与对策[J].中国管理信息化,2017,20(06):132.
[14] 胡卫伟.国内外旅游电子商务的发展现状与对策研究[J].农村经济与科技,2016,27(09):112-115.
[15] Sun Microsystem Inc.JavaTM2 Plateform Enterprise Edtion (J2EE) specification.2003,1~6

致 谢

本文得以顺利完成,我想要感谢的人很多。首先要衷心地感谢我的指导老师潘伯新老师,本文是在潘伯新老师的指导和帮助下完成的。因此,我要向他表示由衷的感谢。您严以律己、宽以待人的为人作风,平易近人的人格魅力,关怀学生的教师道德风范让我倍感温暖。
  然后还要感谢所有在大学期间传授我知识的老师,每一位老师曾经传授的知识都是我如今得以完成这篇论文的基础。老师们对我的教导令我深知:有理想就会有希望,有希望就一定可以看到理想实现的那一天。人生路上有那么多的荆棘,但学生我绝对不会向困难低头。
  最后在这里我要感谢一直默默站在我身后的父母与亲人,是他们对我无声的支持,使我可以一直坚持下来,曾经您们给予我遮风挡雨,未来就换我来守护您们吧。大学生涯即将结束,我也不再是那个入校时懵懂无知的新生,即将离开学校,正式步入社会中奋斗,我会努力适应这个社会的,让自己的羽翼愈加丰满。

你可能感兴趣的:(java,java)