Node.js+Koa2+TypeScript技术概览
最近几年一直使用Node.js作为后端服务平台,通过Koa2框架中间件快速搭建Web服务,但是使用JavaScript开发大型后端服务时会使程序变得难以维护,继而使用TypeScript语言开发,使编译、调试、检查和代码管理变得更加容易。
下图是使用Koa2框架搭建后端服务的思维导图:

一、Node.js
介绍:一个开源的、跨平台的JavaScript运行时环境。类似于C#的.NetFramewok,Java的JRE。
优点:
超强的并发能力;
单线程的高性能并行非阻碍I/O,基于事件驱动;
前后端开发语言一致,开发效率高;
微服务和SeverLess开发更具优势;
不足:
不适合计算密集型应用;
不适合大内存应用;
不适合大量同步应用。
使用场景:
开发Web服务Api,比如RESTful API;
服务器渲染页面,提升速度;
后端的 Web服务,例如跨域、服务器端的请求。
应用方向:
善于 I/O,天生异步的特点让其非常擅长进行任务调度和处理并发 I/O,但不善于计算;
业务方向:网站开发、即时通信、小程序开发、跨平台开发等;
Node.js 过于追求性能而导致健壮性有所不足,所以不适用于银行、证券等方向,但适合创业公司这种小体量、追求性能的公司;
大型企业在客户端和服务器端直接加设Node.js,适合用Node.js做的就尽量用成本低回报高的Node.js来做。
二、Koa2
介绍:基于 Node.js 平台的下一代 web 开发框架。由 Express 原班人马打造的,致力于成为一个更小、更富有表现力、更健壮的 Web 框架。使用 Koa 编写 Web 应用,可以免除重复繁琐的回调函数嵌套, 并极大地提升错误处理的效率。Koa 不在内核方法中绑定任何中间件, 它仅仅提供了一个轻量优雅的函数库,使得编写 Web 应用变得得心应手,最大的特点就是可以避免异步嵌套。利用ES7的async/await特性,极大的解决了我们在做Node.js开发的时候异步给我们带来的烦恼。
优点和不足:非常简单,而且极度自由,这种理念是优点也是缺点。
三、未来展望
实时应用:实时应用是大势所趋,并且将保持在排行榜前列。这些应用需要一个强大且健壮的后端。即时通信、视频通话和在线游戏,以及许多其他相似的应用是完美的案例;
物联网:Node.js提供一个特性丰富的运行环境,允许开发者使用面向数据和及时能力,以及微服务,当你在为自己的客户构建 IoT(物联网)应用时,你可以相信 Node.js 能够帮助到你;
SeverLess:每个人都喜欢既能省钱还能提高开发者的生产力和效率的方案,而将 Node.js 用于无服务架构正好是一个绝妙的解决方案。维护成本几乎为零,而且并不需要公司担心其应用的性能;
GraphQL:GraphQL 是 RESTful API 的一个成功的选项。GraphQL 使程序员可以精确地说明它需要的信息。它可以有效地从不同的渠道收集大量信息。GraphQL 每年都在发展,是另一种 Node.js 趋势;
微服务:基于Node.js的优点,其更适合搭建微服务平台。
更多精彩,请关注公众号,互相学习,共同进步!

Node.js+Koa2+TypeScript技术概览的更多相关文章
- Nodejs学习笔记(十五)--- Node.js + Koa2 构建网站简单示例
目录 前言 搭建项目及其它准备工作 创建数据库 创建Koa2项目 安装项目其它需要包 清除冗余文件并重新规划项目目录 配置文件 规划示例路由,并新建相关文件 实现数据访问和业务逻辑相关方法 编写mys ...
- [转]Nodejs学习笔记(十五)--- Node.js + Koa2 构建网站简单示例
本文转自:https://www.cnblogs.com/zhongweiv/p/nodejs_koa2_webapp.html 目录 前言 搭建项目及其它准备工作 创建数据库 创建Koa2项目 安装 ...
- Nodejs学习笔记(十五)—Node.js + Koa2 构建网站简单示例
前言 前面一有写到一篇Node.js+Express构建网站简单示例:http://www.cnblogs.com/zhongweiv/p/nodejs_express_webapp.html 这篇还 ...
- 分享Node.js + Koa2 + MySQL + Vue.js 实战开发一套完整个人博客项目网站
这是个什么的项目? 使用 Node.js + Koa2 + MySQL + Vue.js 实战开发一套完整个人博客项目网站. 博客线上地址:www.boblog.com Github地址:https: ...
- Node.js最新Web技术栈(2016年4月)
Node.js是比较简单的,只有你有前端js基础,那就按照我的办法来吧!一周足矣,虽然这版上了es语法,但依然是可以简单写,也可以难写,参见<全栈工程师之路-Node.js>,里面讲了No ...
- 【Visual Studio Code 】使用Visual Studio Code + Node.js搭建TypeScript开发环境
1.准备工作 Node.js Node.js - Official Site Visual Studio Code Visual Studio Code - Official Site 安装Node. ...
- 使用Visual Studio Code + Node.js搭建TypeScript开发环境
Visual Studio Code搭建Typescript开发环境 —— 相关文章: http://www.cnblogs.com/sunjie9606/p/5945540.html [注意:这里仅 ...
- Node.js && Angular && TypeScript 环境安装与更新
安装 Node.js 下载并安装Node.js Angular 执行命令 npm install -g @angular/cli 参考资料: angular quickstart TypeScript ...
- Docker最全教程之使用Node.js搭建团队技术文档站(二十三)
前言 各种编程语言均有其优势和生态,有兴趣的朋友完全可以涉猎多门语言.在平常的工作之中,也可以尝试选择相对适合的编程语言来完成相关的工作. 在团队技术文档站搭建这块,笔者尝试了许多框架,最终还是选择了 ...
- Node.js Koa2开发微信小程序服务端
1.promise.async.await const Koa = require('koa') const app = new Koa() // 应用程序对象 有很多中间件 // 发送HTTP KO ...
随机推荐
- OCI runtime create failed: container_linux.go:349: starting container process caused "exec: "bash": executable file not found in $PATH": unknown
docker save docker save centos:self -o centos.tar 导出镜像到文件 用于持久化镜像,导出的tar包需要用 docker load -i imagedat ...
- 聊聊kafka
两个月因为忙于工作毫无输出了,最近想给团队小伙伴分享下kafka的相关知识,于是就想着利用博客来做个提前的准备工作了:接下来会对kafka做一个简单的介绍,包括利用akf原则来解析单机下kafk的各个 ...
- 阿里云 ACK 接入观测云
简介 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理.2021 年成为国内唯一连续三年入选 Gartner 公共云容器报告的 ...
- <三>使用类模板实现STL Vector
使用类模板实现STL Vector,点击查看代码 #include <iostream> using namespace std; template<typename T> c ...
- 华为云平台部署教程之CNA\VRM的安装
本教程仅含华为云平台搭建部署中CNA和VRM的安装,请按需求选择查看本文. 一.前期准备 1.硬件 服务器*4 交换机*3 网线 个人PC机 2.软件 PC机系统(win7/win10) KVM软件 ...
- i春秋Fuzzing
先查看源码...没东西,抓包 发现也没什么,但是右边有个提示hint: ip,Large internal network(最大内网ip) 可能需要我们伪造代码进行访问,这还不简单,直接在reques ...
- layui文件上传
//前端代码 <div class="layui-form-item"> <label class="layui-form-label"> ...
- Lakehouse架构指南
你曾经是否有构建一个开源数据湖来存储数据以进行分析需求? 数据湖包括哪些组件和功能? 不了解 Lakehouse 和 数据仓库 之间的区别? 或者只是想管理数百到数千个文件并拥有更多类似数据库的功能但 ...
- 【大数据面试】Flink 03-窗口、时间语义和水印、ProcessFunction底层API
三.窗口 1.窗口的介绍 (1)含义 将无限的流式数据切割为有限块处理,以便于聚合等操作 (2)图解 2.窗口的分类 (1)按性质分 Flink 支持三种划分窗口的方式,time.count和会话窗口 ...
- 【每日一题】【栈和队列、双端队列】20. 有效的括号/NC52 有效括号序列-211127/220126
给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合.左括号必须以正确的顺序闭合. 来源:力扣(L ...