轻量级Web开发MVC框架
npm install rocker-mvc --save
Node.js >= 8.0.0 required.
✔︎ 简单易用,符合工程师直觉
✔︎ 一体化的开发集成框架
✔︎ 面向对象风格的开发体验
(以下代码样例均Typescript实现)
基本路由使用
静态资源
rocker-mvc/samples/router
└src
│ └router
│ ├router.ts
│ └tpt.ejs
└start.ts
└package.json
start.ts
import {route} from "rocker-mvc";
/**
* 配置路由并启动
*/
route({
'/sample': require('./src/demo/router')
})
.start()//启动(默认端口8080)src/demo/router.ts
import {Get, Param, Request} from "rocker-mvc";
//在start.ts 中配置了路由规则为
// '/demo': require('./src/homepage/router')
export default class {
/**
* 【样例1】 匹配Get(/demo)
*/
@Get({url: '/', render: './tpt.ejs'})//@Get注释该方法表明为Get方法,url:匹配的路径,render:返回的摸版路径
async get0(@Param('id') _id: string, @Request _ctx) {//此处的方法名可以是任意的,通过 @Param描述对应请求中的参数
//返回给摸版引擎的数据对象
return {message: `The input param id value is: ${_id}`};
}
/**
* 【样例2】 匹配 Get(/demo/test)
*/
@Get({url: '/test', render: './tpt.ejs'})
async get1(@Param({name: 'id', required: true}) _id: string, @Param('age') _age: number) {//@Param描述了一个“非空”的id及可为空的age参数
//返回给摸版引擎的数据对象
return {message: `The input param id value is: ${_id}`};
}
/**
* 匹配 Post(/demo)
*/
@Post({url: '/'})
async post(@Param('id') _id: string) {
//直接将json返回
return {message: `The input param id value is: ${_id}`};
}
}src/demo/tpt.ejs
<div>
<div><%=message%></div>
</div>rocker-mvc/samples/assets
└src
│ └assets
│ └assets
│ └test.js
└start.ts
└package.json
start.ts
import {route} from "rocker-mvc";
import * as path from 'path';
/**
* 作为静态服务器使用
*/
let assetsPath = path.join(path.resolve('./'), './src/assets/');
route({assetsPath}).start();
// 1. assetsPath选项指定静态文件内容的位置
// 2. 静态内容处理优先级低于router配置
// 3.rocker-mvc提供了不允许访问静态资源之外内容的安全机制