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
感谢
代码贡献者(按字母排序)
Germini, hiisea, luckyporo, mingkang1993, minzojian, onichandame, Vibutnum, victoryifei, zfbenFaasJS 基于以下开源项目(按字母排序)
Apollo, Biome, Jest, Knex, Node.js, Rollup.js, TypeScript, VuePress