The minimalistic ES6 web framework. (in MVC pattern)
miku
会在启动时自动加载放在 ./app/models
里的 models,文件名默认首字母大写。
The routes:
// ./app/config/routes.js
export default {
'/': 'Home',
'/user/:username': 'UserInfo'
}
The model:
// ./app/models/User.js
import {Model} from 'miku'
export default class User extends Model {
async getUserInfo(name) {
const user = await this.db.User.findOneByName(name).populate('posts')
return user
}
}
The controller:
// ./app/controllers/UserInfo.js
import {Controller} from 'miku'
export default class UserInfo extends Controller {
// eg: /user/egoist
async index() {
const user = await this.model.User.getUserInfo(this.params.username)
this.send(user)
}
// eg: /user/egoist/blog
blog() {
this.send(`blog of ${this.params.username}`)
}
}