首页 > 编程语言 >Node.js+Koa2+TypeScript技术概览

Node.js+Koa2+TypeScript技术概览

时间:2023-02-01 22:57:01浏览次数:58  
标签:Node Web TypeScript js 开发 应用 Koa2

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

下图是使用Koa2框架搭建后端服务的思维导图:

 

 

 

 

 


 

 

一、Node.js

介绍:一个开源的、跨平台的JavaScript运行时环境。类似于C#的.NetFramewok,Java的JRE。

优点:

  1. 超强的并发能力;

  2. 单线程的高性能并行非阻碍I/O,基于事件驱动;

  3. 前后端开发语言一致,开发效率高;

  4. 微服务和SeverLess开发更具优势;

不足:

  1. 不适合计算密集型应用;

  2. 不适合大内存应用;

  3. 不适合大量同步应用。 

使用场景:

  1. 开发Web服务Api,比如RESTful API;

  2. 服务器渲染页面,提升速度;

  3. 后端的 Web服务,例如跨域、服务器端的请求。 

应用方向:

  1.  善于 I/O,天生异步的特点让其非常擅长进行任务调度和处理并发 I/O,但不善于计算;

  2. 业务方向:网站开发、即时通信、小程序开发、跨平台开发等;

  3. Node.js 过于追求性能而导致健壮性有所不足,所以不适用于银行、证券等方向,但适合创业公司这种小体量、追求性能的公司;

  4. 大型企业在客户端和服务器端直接加设Node.js,适合用Node.js做的就尽量用成本低回报高的Node.js来做。

 


 

 

二、Koa2

介绍:基于 Node.js 平台的下一代 web 开发框架。由 Express 原班人马打造的,致力于成为一个更小、更富有表现力、更健壮的 Web 框架。使用 Koa 编写 Web 应用,可以免除重复繁琐的回调函数嵌套, 并极大地提升错误处理的效率。Koa 不在内核方法中绑定任何中间件, 它仅仅提供了一个轻量优雅的函数库,使得编写 Web 应用变得得心应手,最大的特点就是可以避免异步嵌套。利用ES7的async/await特性,极大的解决了我们在做Node.js开发的时候异步给我们带来的烦恼。

优点和不足:非常简单,而且极度自由,这种理念是优点也是缺点。

 


 

 

三、未来展望

  1. 实时应用:实时应用是大势所趋,并且将保持在排行榜前列。这些应用需要一个强大且健壮的后端。即时通信、视频通话和在线游戏,以及许多其他相似的应用是完美的案例;

  2. 物联网:Node.js提供一个特性丰富的运行环境,允许开发者使用面向数据和及时能力,以及微服务,当你在为自己的客户构建 IoT(物联网)应用时,你可以相信 Node.js 能够帮助到你;

  3. SeverLess:每个人都喜欢既能省钱还能提高开发者的生产力和效率的方案,而将 Node.js 用于无服务架构正好是一个绝妙的解决方案。维护成本几乎为零,而且并不需要公司担心其应用的性能;

  4. GraphQL:GraphQL 是 RESTful API 的一个成功的选项。GraphQL 使程序员可以精确地说明它需要的信息。它可以有效地从不同的渠道收集大量信息。GraphQL 每年都在发展,是另一种 Node.js 趋势;

  5. 微服务:基于Node.js的优点,其更适合搭建微服务平台。

 


 

       

          更多精彩,请关注公众号,互相学习,共同进步!

 

标签:Node,Web,TypeScript,js,开发,应用,Koa2
From: https://www.cnblogs.com/laolv4519/p/17084399.html

相关文章

  • 基于 keras-js 快速实现浏览器内的 CNN 手写数字识别
    https://zhuanlan.zhihu.com/p/33313340在这篇文章中,我会快速地介绍如何使用keras训练一个简单的识别MNIST(一个手写数字数据集)的CNN(卷积神经网络),并且把训练好的网络应......
  • vite.config.js
    import{defineConfig}from'vite'//动态配置函数import{createVuePlugin}from'vite-plugin-vue2'importvuefrom'@vitejs/plugin-vue';exportdefault()=>......
  • js实现替换对象(json)格式的键名
    某些场景下,我们拿到的键名与预期的键名不符,这个时候就需要替换键名来得到我们想要的内容letobj=[{id:1,title:'zs'},{id:2,title:'l......
  • js防抖函数
    1、使用场景:例如:搜索框搜索输入。只需用户最后一次输入完,再发送请求2、函数防抖的要点:需要一个 setTimeout 来辅助实现,延迟运行需要执行的代码。如果该方法多......
  • 关于node.js
    浏览器是JavaScript的前端运行环境。Node.js是JavaScript的后端运行环境。Node.js中无法调用DOM和BOM等浏览器内置API。基于Express框架(http://www.expres......
  • 【Frida】调试js代码
    方法一attach启动js代码动态注入app,app需要保持运行状态#coding:utf-8importsysimportfridaapp_name="猿人学APP"#app的名字js_file_path="./demo.js"#......
  • json .net 反序列化
    引用链接https://www.cnblogs.com/nice0e3/p/15294585.html#%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E6%94%BB%E5%87%BBhttps://www.anquanke.com/post/id/172920#h3-3j......
  • 如何生成设备ID?(node-machine-id)
    业务场景:前端需要在请求登录接口的时候传一个设备ID,用于后台记录同一台设备异常登录的次数,然后返回一个字段让前端判断是否展示异常信息的弹框。分析:首先说下,为什么这里是......
  • 书城9 - 前后端 json 数据的交互
    解析请求中的json数据,返回json数据1.加入Gson.jar包2.通过输入流读取数据,使用Gson对象解析字符串protectedvoidrequestBodyJSON(HttpServletRequestrequ......
  • 2023年JS学习记录
    2023/1/30星期一https://blog.csdn.net/Augenstern_QXL/article/details/119249534短路运算(逻辑中断)短路运算的原理:当有多个表达式(值)时,左边的表达式值可以确定结果时......