egoist
11/11/2016 - 1:06 PM

The minimalistic ES6 web framework. (in MVC pattern)

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}`)
  }
}