dong-frank的博客

Web开发基础 2024.7.21

字数统计: 723阅读时长: 2 min
2024/07/27

Web后端开发技术

单体架构

客户端 <=> 服务器

分布式架构

客户端 <=> 代理 <=> 多个服务器

微服务架构

客户端 <=> 应用网关 <=> 服务(一个服务器上部署了多个服务实例)
电商在购物旺季和淡季动态调整服务部署数量

  • 服务注册中心:实现服务和服务之间的通讯
    例子:销量的统计和库存统计的服务需要通讯

Serverless 架构

微信小程序

客户端 <=> 云端应用 <=> 多个云端应用

无法感知具体的服务节点,托管到云端

Node.js

  • Node是什么?
    • 运行的环境
  • 代码是如何运行的?
    • JavaScript代码 -> Node运行时环境/浏览器的开发者工具 (JavaScript引擎 V8) -> 汇编代码
  • Node.js可以实现跨平台

借助midway实现后端代码库的构建

  • 后端代码库没有html,css文件

  • tsconfig.json: typescript 对于类型的约束

    • 因为JavaScript为弱类型语言
    • 编写typescript语言,实际编译为JavaScript语言
  • typescript: 有类型的JavaScript

  • TypeScript数据类型

    • number, boolean, string
    • number[], Array<number>
    • any
    • interface, union…

let a: number;

  • TypeScript Class

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    class A{
    name: string;
    description: string;

    constructor(name: string, descripting: string){
    this.name = name;
    this.description = description;
    }

    public getName(): string{
    return this.name;
    }
    }
  • TypeScript函数,会定义参数和返回值的类型

    1
    2
    3
    function f1(param_1: number, param_2: number): string {
    return 'Hello';
    }

async 函数 vs. 同步函数

异步函数返回的是一个未来某一个时刻执行完成的结果
返回值一定要是Promise
如果没有async也可以返回Promise (Promise本质就是一种数据类型) 相当于一个同步函数返回了一个异步的结果

1
2
3
4
5
6
async home(): Promise<object> {
return{
message: 'Hello Web Development!',
};
}
home.then(); //await home();

Promise的使用

  1. new Promise((resolve,reject)=>{})
    • resolve() 表示操作成功的结果
    • reject() 表示操作失败的结果
      1
      2
      3
      4
      5
      6
      7
      8
      async function minus (a: number, b:number): Promise<Number> {
      return a-b;
      }

      let b= minus(3,4); //b的类型是Promis<number>
      let c= await minus(3,4); //c得到了返回值,可以用await和then()得到

      console.log(b,c); //

后端代码结构

client <=> controller(控制器) <=> service(服务)

  • client发出http request
  • controller返回http response

Controller具体实现

负责接收和响应外部请求,第一个接触客户端请求

Service具体实现

控制反转和依赖注入:
@Provide 创建一个服务示例
@Inject controller获得这个服务示例
通过注解实现每个服务示例只new一次

敏捷看板中如何任务新建

ppt

文件上传

ppt

高阶函数

以回调函数为参数的函数

  • 回调函数: 箭头那样的函数

Postman

没有前端时如何去验证后端服务是否成功

CATALOG
  1. 1. Web后端开发技术
    1. 1.1. 单体架构
    2. 1.2. 分布式架构
    3. 1.3. 微服务架构
    4. 1.4. Serverless 架构
    5. 1.5. Node.js
    6. 1.6. 借助midway实现后端代码库的构建
    7. 1.7. async 函数 vs. 同步函数
    8. 1.8. Promise的使用
    9. 1.9. 后端代码结构
    10. 1.10. Controller具体实现
    11. 1.11. Service具体实现
    12. 1.12. 敏捷看板中如何任务新建
    13. 1.13. 文件上传
    14. 1.14. 高阶函数
    15. 1.15. Postman