hero

FaasJS

基于 Typescript 和 Node.js 的原子化 FaaS 应用框架

# 为什么要使用 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 { FuncWarpper } from '@faasjs/test'
import Func from '../index.func'

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

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

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

# 立即开始

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



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

感谢

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

luckyporo onichandame Vibutnum victoryifei zfben

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

Apollo Babel ESLint Jest JSDoc Knex Node.js React Rollup.js TypeScript Vue.js VuePress

沪ICP备15033310号