基于Node的高性能MVC框架
基于Node的高性能MVC框架
赶上公司去Windows化,有一大波.net站点需要转成Node.js,于是自己就顺便琢磨一个通用的Node版MVC框架。
经过几天的努力,beta版终于面世了!因为其高性能的特点,特地命名node-eagle
github地址:https://github.com/sqzhuyi/node-eagle
安装:
npm install node-eagle
依赖:
Node8 (https://nodejs.org/en/)
Koa2 (https://www.npmjs.com/package/koa)
Mustache (https://www.npmjs.com/package/mustache)
特点:
- 高性能:不借助任何缓存,i5单核CPU可达到5400的QPS
- route默认走controller:name+action:name,可自定义
- 支持自动render和手动render:调用 this.render(viewName) 参数可选
- 指定status后(非100),不再执行后续代码
- controller/action/view 不区分大小写
- 通过 this.get(key) 获取header/path/query/post参数,不区分大小写
- 内容渲染采用Mustache模板引擎
- 页面嵌套、引用手动实现,支持常用语法:extends/include/block,如下:
<body> {% include "./_header.html" %} {% block body %} <div>default content</div> {% endblock %} {% include "./_footer.html" %} </body>
{% extends "../shared/_layout.html" %} {% block body %} <div class="body"> {{{ content }}} </div> {% endblock %}
使用:
1、在Node启动文件中加入以下代码:
1 const Koa = require("koa"); 2 const app = new Koa(); 3 const eagle = require("node-eagle"); 4 const config = require("./config"); 5 6 eagle(app, config); 7 8 app.listen(config.port, config.host, function(){ 9 console.log(`app start at ${config.host}:${config.port}`); 10 });
2、按照MVC规则创建站点文件,如下:
website ├ controllers │ └ home.js ├ views │ └ home │ └ index.html ├ config.js └ route.js
3、最重要的是,一定要看这个Demo: https://github.com/sqzhuyi/node-eagle-demo