英语原文共 46 页,剩余内容已隐藏,支付完成后下载完整资料
Aashis Rimal
使用ES6和Beyond在NodeJS和MongoDB上开发Web应用程序
Metropolia应用科技大学工程学士
信息技术学士论文
2019年1月25日
摘要
作者名称 页数日期 |
Aashis Rimal 使用ES6和Beyond在NodeJS和MongoDB上开发Web应用程序 36页 2019年1月25日 |
|
学位 |
工程学士 |
|
学位课程 |
信息技术 |
|
专业专业 |
软件工程 |
|
教师 |
Kimmo Sauren,高级讲师 |
|
本文的目的是使用Full Stack JavaScript研究Web开发的不同方面,并开发基于它的原型应用程序。其目的是研究NodeJS,Express,MongoDB和EJS在开发Full Stack Web应用程序中的用法。此外,它还专注于研究不同版本的JavaScript及其在NodeJS平台中的使用。 所有不同版本的ECMAScript都经过详细研究,特别是ES6。然后,研究了基于JavaScript的框架(如NodeJS,Express和MongoDB)的特性和实现,并与其他技术进行了比较。此外,还说明了NodeJS应用程序的潜在安全威胁以及各种缓解这些威胁的方法。此外,使用所述堆叠开发了应用的最小可行产品。 因此,使用NodeJS核心软件包和模块以及Express中间件在NodeJS和Express中开发了电子商务应用程序。其他第三方中间件也用于开发工作原型应用程序。 总之,全栈JavaScript被认为是开发现代,可扩展和安全的Web应用程序的最佳技术。但是,NodeJS无法处理复杂的数据计算和算法,因此不适合开发大型企业应用程序。 |
||
关键词 |
NodeJS,Express,MongoDB,Mongoose,EJS,安全性 |
内容
缩略语表
- 介绍 1
-
JavaScript的 2
-
不同的JavaScript版本 3
- ES6之前 5
-
不同的JavaScript版本 3
2.1.2 ES6 5
2.1.3 ES6之后 7
-
NodeJS和Express 7
- NodeJS 7
- Express 9
-
MongoDB和Mongoose 10
- MongoDB 10
- Mongoose 10
-
项目实施 11
- 项目介绍 11
-
开发环境设置 13
- 集成开发环境(IDE) 14
- 版本控制系统和托管服务 14
- NPM,NodeJS,MongoDB,Express和EJS 14
- 其他节点包 18
- 应用逻辑 21
-
安全 28
- 身份验证和授权 28
- 过滤和清理用户输入 29
- 跨站请求伪造(CSRF) 29
- 易受攻击的第三方模块 29
- HTTP标头注入 30
- Cookie和安全会话处理 31
- 使用传输层安全性(TLS) 32
- MongoDB Atlas IP白名单和用户身份验证 32
- 结果和讨论 32
- 结论 36
参考 37
缩略语表
API |
应用程序接口 |
CSRF |
跨站请求伪造 |
CORS |
跨源资源共享 |
CSS |
层叠样式表 |
EJS |
嵌入式JavaScript |
ES4 |
ECMAScript 4 |
ES5 |
ECMAScript 5 |
ES6 |
ECMAScript 6 |
HTML |
超文本标记语言 |
HTTP |
超文本传输协议 |
HTTPS |
安全套接字层上的超文本传输协议 |
IDE |
编程软件 |
JSON |
JavaScript对象表示法 |
LAMP |
Linux Apache MySQL和PHP |
LTS |
长期支持 |
MVC |
模型视图控制器 |
MVP |
最小可行产品 |
|
可移植文档格式 |
PHP |
PHP:超文本预处理器 |
REST |
代表性状态转移 |
SSL |
安全套接字层 |
SQL |
结构化查询语言 |
TLS |
传输层安全性 |
URL |
统一资源定位器 |
WWW |
全球资讯网 |
XSS |
跨站脚本 |
介绍
自万维网(WWW)推出以来,Web开发已经走过了漫长的道路。开发人员必须为每个操作系统开发单独的应用程序,并在计算机上本地安装它们以便使用它们。这些应用程序称为桌面应用程序。相反,无论用户的操作系统如何,都可以从Web浏览器轻松访问Web应用程序。自桌面应用程序和静态网站到现代用户交互式智能Web应用程序以来,Web应用程序取得了巨大进步。用户过去只能读取静态网站的内容。但是,由于Web应用程序的出现,用户可以与服务器交互,收听音频和观看视频以及在屏幕上绘图。
Web应用程序开发是前端和后端开发的组合。有许多编程语言和框架可供选择,以便开发Web应用程序。以前,没有编程语言可以同时执行应用程序的前端和后端开发。LAMP堆栈:Linux,Apache,MySQL和PHP曾经是全栈Web开发的标准。PHP主要用于后端,HTML,CSS和JavaScript是前端开发的主要堆栈,而MySQL则用作数据库。Apache充当LAMP堆栈中Linux操作系统中的Web服务器。然而,开发人员需要学习多种语言,所有语言都使用不同的语法,并且具有不同的性质,来使用LAMP堆栈开发Web应用程序。除此之外,随着NodeJS作为服务器端平台的出现,JavaScript也能够在单一编程语言中提供全栈软件开发。尽管NodeJS是后端开发最常用的技术,但有多个框架,如Angular,React,Vue.js或Knockout.js,以及可用于开发的模板引擎,如EJS,Handlebars或Pug,都可以作为应用程序的前端。
本论文的目的是研究JavaScript的全栈应用程序开发所需的不同组件和框架。此外,还开发了一个原型应用程序,以演示在单个Web应用程序中使用的不同形式的JavaScript的实现。但是,该报告更多地关注用于开发应用程序的JavaScript的不同组件。它还将Full Stack JavaScript应用程序的性能,速度和代码可重用性与其他类似技术进行了比较。
JavaScript
JavaScript是一种动态的,面向对象的脚本语言,具有基于对象的第一类函数,可以通过将函数本身作为参数传递给其他函数来返回值。JavaScript最初是由Brendan Eich于1995年在一家名为Netscape的公司开发的,用作Java的脚本语言[1]。尽管JavaScript主要用于客户端脚本以执行基于Web的功能,但它已经发展得非常重要,以支持服务器端脚本。JavaScript现在已经发展成为一种编程语言,用于Web应用程序,数据库和机器人技术的前端和后端。
与使用不同语言进行后端和前端开发相比,全栈JavaScript开发具有多个优势。它是开发动态和高性能应用程序的绝佳技术堆栈。代码共享和可重用性通过共享代码部分甚至共享模板,库和模型,有助于将代码行数减少多达40%。它使维护或重构非常容易和经济有效。此外,使用通用语言有助于提高团队效率并缩小团队之间的差距,因为所有参与应用程序的团队将更好地了解其他团队正在做的事情。[2]此外,开发人员不需要因为单个应用程序使用不同的语言,而担心语法差异。
此外,JavaScript提高了应用程序的速度和性能。PayPal从JAVA迁移到使用NodeJS作为其应用程序的服务器端平台,并发布了一份报告,来说明JavaScript和NodeJS如何帮助他们提高应用程序的性能并减少显着编写的代码量。根据该报告,JavaScript应用程序的构建速度是Java编写的两倍,团队中的人员更少。他们还指出,JavaScript应用程序包含的代码行数减少了33%,文件数量减少了40%,两个应用程序都包含相同的功能。同样,JavaScript应用程序中每秒的请求数量增加了一倍,平均响应时间最小化了35%。[3]
尽管全栈JavaScript开发具有所有这些优点,但也存在一些缺点。NodeJS无法处理繁重的计算,数据处理,机器学习,算法和繁重的数学计算,因为由于编程模型的异步性,这些操作可能会阻止传入的请求。此外,NodeJS是一项相对较新的技术,尚未得到强大的图书系统的支持。[2]
Stack Overflow调查了超过1,00,000名专业软件开发人员和学生,他们希望在未来能够成为2018年他们最喜欢的Web开发技术。
图1:Stack Overflow上开发人员调查结果2018 [4]
如图1所示,69.8%的受访者将JavaScript列为他们经常使用的技术。这清楚地表明JavaScript是最流行的语言之一。
-
- 不同的JavaScript版本
1996年,Netscape通过ECMA(Ecma International - 欧洲标准化信息和通信系统协会)对JavaScript进行了标准化,该协会确立了IT和ICT领域的标准。ECMA国际致力于使得JavaScript
现代而且与当前的技术标准相关[2]。从那时起,发布了不同版本的ECMAScript,其中EcmaScript6(ES6)是重要版本。在2015年发布最大版本后,ECMA致力于每年发布更新版本。因此,ECMA已将ECMAScript的名称从发布号更改为发布年。但是,数字系统在JavaScript社区中更受欢迎。因此,本文将使用数字系统。表1显示了不同ECMAScript版本的比较列表,其正式名称和发布升级的日期。
表1:ECMAScript版本及其发布日期,从[5]收集的数据
版本 |
lt; 剩余内容已隐藏,支付完成后下载完整资料 资料编号:[19705],资料为PDF文档或Word文档,PDF文档可免费转换为Word |
课题毕业论文、文献综述、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。