经过许久酝酿,sfn 框架终于放出,欢迎提交意见
发布于 7 年前 作者 Hyurl 3763 次浏览 来自 分享

源代码:https://github.com/Hyurl/sfn 文档:https://hyurl.github.io/sfn/ 简单 HTTP 控制器示例:

import { HttpController, route, HttpError } from "sfn";
import { User, NotFoundError } from "modelar";

export default class extends HttpController {
	constructor(req: Request, res: Response) {
        super(req, res);

        // your stuffs...
    }

    @route.get("/demo")
    index() {
        return "Hello, World!";
    }
	
	@route.get("/user/:id")
    getUser(req: Request) {
        return req.params.id; // =>e.g. 1
    }
	
	@route.get("/show-error")
    showError() {
        let well: boolean = false;
        let msg: string;
        // ...
        if (!well) {
            if (!msg)
                throw new HttpError(400); // => 400 bad request
            else
                throw new HttpError(400, msg); // => 400 with customized message
        }
    }
	
	@route.post("/login")
    async login(req: Request) {
        try {
            let email = req.body.email,
                password = req.body.password,
                user = await User.use(this.db).login({ email, password });

            req.session.uid = user.id;

            return this.success(user);
            // { success: true, code: 200, data: user }
        } catch (err) {
            return this.error(err, err instanceof NotFoundError ? 404 : 500);
            // { success: false, code: 404 | 500, error: err.message }
        }
    }
}

具体内容非常多,不便多说,可以查看文档进行了解。 这个框架目前为 beta 版本,某些功能尚未完成测试,因此希望大家一起下载来进行试用并上报错误,并提供修改建议。 哦,顺便提一下,TypeScript 是可选的。

9 回复

schedule没有考虑上限2的31次方-1,判断递归一下

ORM也是自己开发的

@fuxingZhang 不是很明白你指的是哪里,能具体一点吗

@fuxingZhang 我知道是这个模块,但你是指哪里要考虑上限,我在源码里找了一下,还是没明白你指哪里

setTimeout 有上限

厉害了,支持造轮子大神

先赞一个 good👍

回到顶部