DelicateJS·
一套基于koa
的轻量级mvc
框架,旨在让基于 node 的 Web接口
开发变得更便捷,更灵活,更高效
-
不推荐使用该框架进行服务端模板渲染,如果实在要实现服务端渲染,推荐基于 react 的同构框架next.js
-
该框架注重于基于 api 的后端业务
Setup
$ cd example
$ node index.js
访问 http://localhost:3001/
more>
Deployment
使用 pm2 进行项目的部署服务
更新日志
-
服务端返回形式
- 正常返回
//例如返回json格式的数据 this.ctx.set('Content-Type', 'text/json'); this.ctx.body = {};
- 模板返回
//指定模板的路径和模板需要渲染的数据[数组] this.view(templatePath, templateData);
- 重定向
//重定向到路由为'/'的页面 this.redirect('/');
- 请求方式检测
//core MY_Controller
module.exports = class extends DJ_Controller {
constructor(ctx) {
super(ctx);
this.MethodNotAllowed(() => {
this.ctx.status = 405;
this.ctx.body = 'Method Not Allowed';
});
}
};
//controllers
//目前支持请求方式 'get', 'post', 'delete', 'head', 'options', 'put', 'patch'
module.exports = class extends MY_Controller {
async delete() {
/*
* 指定当前接受的请求方式
* 如果请求方式不是delete,会执行this.MethodNotAllowed的回调方法
* 如果不指定method,也可以直接写业务,但是这个会任何请求方式都会命中该路由
*/
//指定单个请求方式
await this.method.delete();
//指定多个请求方式
await this.method('delete', 'post');
//指定不同的请求方式的业务代码
//必须要先指定所有可能的请求方式
//await this.method('post', 'delete')
this.method.post(async () => {
//post请求方式的业务代码
});
this.method.delete(async () => {
//delete请求方式的业务代码
});
//编写业务代码
//更多查看最佳实践delicatejs-example
}
};
More
更多使用姿势,请参考example
License
MIT