leanote 支持php,Leanote source leanote源码导读

源码结构

leanote/app/

controllers 控制器

db mongodb通用数据库访问方法, 由service调用

info 数据表的模型和其它数据结构

lea 通用方法

service 服务

view 视图

Controller 控制器

init.go 初始化方法, 注入service

BaseController.go 基控制器, 所有控制器都继承自它

IndexController.go leanote首页

MobileController.go 移动端页面

AuthController.go 用户登录/注销/找回密码

OauthController.go 第三方登录验证, 现只有github

UserController.go 用户, 修改密码, 用户名

NotebookController.go 笔记本

NoteController.go 笔记

NoteContentHistoryController.go 笔记历史

ShareController.go 共享笔记/笔记本

BlogController.go 博客

FileController.go 文件上传, 现只有图片上传

Service 服务

leanote的服务相当于php mvc的model. 服务之间可相互调用, 但服务是根据功能来划分的, 而不是根据数据表(model)

init.go 初始化, 注入各个service

common.go 公用方法

AuthService.go 登录与权限

PwdService.go 密码服务, 修改, 找回

UserService.go 用户

TokenService.go Token, 用于找回密码

NotebookService.go 笔记本

NoteService.go 笔记

NoteContentHistoryService.go 笔记历史

TrashService.go 废纸篓服务

TagService.go 笔记标签

ShareService.go 共享笔记/笔记本

BlogService.go 博客

SuggestionService.go 建议(已废弃)

Leanote db

在db/目录下只有一个文件 Mgo.go.

包含表的Collection对象, 在leanote启动时会连接数据库, 并实例化所有表的Collection对象. 如

// 数据库连接

var err error

Session, err = mgo.Dial(url)

// 实例化各个Collection

NoteContents = Session.DB(dbname).C("note_contents")

NoteContentHistories = Session.DB(dbname).C("note_content_histories")

包含处理数据的公用方法, 如

func Insert(collection *mgo.Collection, i interface{}) bool {

err := collection.Insert(i)

return Err(err)

}

// 适合一条记录全部更新

func Update(collection *mgo.Collection, query interface{}, i interface{}) bool {

err := collection.Update(query, i)

return Err(err)

}

func Upsert(collection *mgo.Collection, query interface{}, i interface{}) bool {

_, err := collection.Upsert(query, i)

return Err(err)

}

Leanote controller, service, db流程

leanote controller处理用户的请求, 但只做请求的分发, 会处理一些用户传的参数. 但真正实现用户的请求是通过调用service来进行处理.

controller的作用:

接收用户的请求

处理用户的参数, 构造合适的数据

调用service

service之间可相互调用, service其实就是数据库的操作, 是通过db来完成的.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值