经过许久酝酿,sfn 框架终于放出,欢迎提交意见
源代码: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 是可选的。
6 回复
schedule没有考虑上限2的31次方-1,判断递归一下
ORM也是自己开发的
@fuxingZhang 不是很明白你指的是哪里,能具体一点吗
sfn-scheduler
@fuxingZhang 我知道是这个模块,但你是指哪里要考虑上限,我在源码里找了一下,还是没明白你指哪里
setTimeout 有上限