指导规范

全局函数

全局函数都定义在App/Common/common.js文件中,函数名为驼峰式命名。如:

  1. //全局函数定义
  2. global.getPicModel = function(groupId){
  3. var model = D('Model');
  4. //extra code
  5. }

这样函数getPicModel在控制器里就可以直接使用了。

类文件

所有的类文件都通过函数Class来创建,没有特殊情况,直接赋值给module.exports。如:

  1. //require模块放在module.exports前面
  2. var marked = require("markded");
  3. var toc = require("marked-toc");
  4. module.exports = Class(function(){
  5. //类里面用到的一些变量放在这里,最好不要放在Class之外
  6. var keyList = {
  7. }
  8. return {
  9. init: function(){
  10. }
  11. }
  12. });

如果创建的类还有一些属性或者方法,那么可以重新定义一个变量,如:

  1. var App = module.exports = Class(function(){ ... })
  2. //listener方法
  3. App.listener = function(){
  4. }

thinkjs里包装了很多功能的基类,如:Model, Db, Controller,需要开发这些功能时,可以直接继承这些基类。

异步

thinkjs是基于es6-promise来实现的,大大简化了异步回调的代码逻辑。

如果你的项目比较复杂,需要开发一些独立的模块,建议也使用promise的方式。