FaasJS

FaasJS

一个基于 Typescript 的原子化应用框架

为什么要使用 FaasJS ?

开发效率高

原子化的开发模式,可以让开发和迭代降低到羽量级的程度,对团队开发也更友好。

FaasJS 官方提供了诸如 HTTP、Knex 等插件,使开发者可以立刻上手开发业务。

可维护性高

FaaS 架构保证了云函数之间的独立性,避免单一错误导致整个系统的故障。

FaasJS 内置自动化测试工具,方便开发者对云函数进行自动化测试。

可扩展性高

FaasJS 拥有简单易用的插件机制,可以让开发者可以自由扩展功能和插件。

代码示例

云函数文件

// index.func.ts 文件,云函数文件名都以 .func.ts 结尾
import { useFunc } from '@faasjs/func'
import { useHttp } from '@faasjs/http'

export default useFunc(function() {
  useHttp() // 引入 http 插件

  return async function () {
    return 'Hello, world' // 返回的内容
  }
})

单元测试文件

// __tests__/index.test.ts 文件,单元测试文件名都以 .test.ts 结尾
import { FuncWarper } from '@faasjs/test'
import Func from '../index.func'

describe('index', function () {
  test('should work', async function () {
    // 引用云函数文件
    const func = new FuncWarper(Func);

    // 模拟调用
    const { statusCode, data } = await func.JSONhandler()

    // 返回 200 状态
    expect(statusCode).toEqual(200)
    // 返回的 data 内容为 'Hello, world'
    expect(data).toEqual('Hello, world')
  });
});

立即开始

npx create-faas-app --name faasjs --example --noprovider



欢迎关注 FaasJS 作者的公众号(寂静小站)与我交流:
公众号 寂静小站

感谢

代码贡献者(按字母排序)

Germini, hiisea, luckyporo, mingkang1993, minzojian, onichandame, Vibutnum, victoryifei, zfben

FaasJS 基于以下开源项目(按字母排序)

Apollo, Biome, Jest, Knex, Node.js, Rollup.js, TypeScript, VuePress