使用ES6和Beyond在NodeJS和MongoDB上开发Web应用程序外文翻译资料

 2022-12-19 06:12

英语原文共 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. 介绍 1
  2. JavaScript的 2
    1. 不同的JavaScript版本 3
      1. ES6之前 5

2.1.2 ES6 5

2.1.3 ES6之后 7

  1. NodeJS和Express 7
    1. NodeJS 7
    2. Express 9
  2. MongoDB和Mongoose 10
    1. MongoDB 10
    2. Mongoose 10
  3. 项目实施 11
    1. 项目介绍 11
    2. 开发环境设置 13
      1. 集成开发环境(IDE) 14
      2. 版本控制系统和托管服务 14
      3. NPM,NodeJS,MongoDB,Express和EJS 14
      4. 其他节点包 18
    3. 应用逻辑 21
    4. 安全 28
      1. 身份验证和授权 28
      2. 过滤和清理用户输入 29
      3. 跨站请求伪造(CSRF) 29
      4. 易受攻击的第三方模块 29
      5. HTTP标头注入 30
      6. Cookie和安全会话处理 31
      7. 使用传输层安全性(TLS) 32
      8. MongoDB Atlas IP白名单和用户身份验证 32
  4. 结果和讨论 32
  5. 结论 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

最小可行产品

PDF

可移植文档格式

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是最流行的语言之一。

    1. 不同的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

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

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