源码结构

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来完成的.

leanote 支持php,Leanote source leanote源码导读相关推荐

  1. html圣诞树代码_支持手机选择背景音乐圣诞树源码

    html圣诞树代码_支持手机选择背景音乐圣诞树源码小子在本地测试了下,圣诞树会根据音乐变化起来,挺好看的手机打开显示黑屏的问题,已经修复适配,上传服务器即可,如果加载慢就把远程js和css本地化或者更 ...

  2. 免费分享-【APP分发系统仿fir.im】新版APP应用分发新版源码支持分发托管运营版源码

    [APP分发系统仿fir.im]新版APP应用分发新版源码支持分发托管运营版源码 修复远程被恶意删数据库,支持封装仿fir.im分发APP应用分发托管平台经营版源码,一键访问域名直接安装. 纠正iOS ...

  3. 2021年最新以太坊源码导读-p2p架构

    前面部分的内容都是源码导读,可能有的朋友没有耐心把所有代码看完.这里我采用尽可能简单的方式来介绍p2p这部分的代码究竟做了什么. 一.概念篇 p2p是peer-to-peer的缩写,以太坊网络是一个去 ...

  4. 鸿蒙源码导读-01:蓝海与红海

    本文摘录自 OHOZ 团队的 OpenHarmony 源码导读项目,在线阅读(腾讯云.Github Pages)中包含最新的内容. 鸿蒙的蓝海与红海 Arch.SoC.target 环境.源码.编译 ...

  5. Google Chrome Source Code 源码下载

    2019独角兽企业重金招聘Python工程师标准>>> Goolgle 于 2008.09.02 发布了浏览器 Google Chrome.Google Chrome 使用的内核源码 ...

  6. 支持PHP8 JIT的PHP源码加密库发布!

    FRICC2是PHP源码加密工具.当你使用PHP开发商业软件时可以使用FRICC2对发布的代码进行加密,加密后只有具备解密权限的PHP解析器才能执行程序.感谢PHP-Screw项目的贡献. 更少的文件 ...

  7. 程序员用C++代码实现高清播放器,支持DVD视频,附源码

    VC++ 源码编写的一款高清播放器smplayer,支持DVD视频,当然也会支持VCD的格式,另外还可播放MP3等音频,这款播放器是从国外网站下载的,软件界面语言是英文,部分功能依赖Qt4库,该软件源 ...

  8. EDM支持国内外邮件群发系统源码

    源码简介: 多用户系统多语言(23 Language Inc.)和语言编辑器Bootstrap 5 支持和响应式用户特定主题选择(16 Theme Inc.)所见即所得编辑器和拖放设计API 支持组: ...

  9. 国外交友网站即时通讯支持多语言社交网站源码

    源码简介:系统功能丰富完善,开发增加多种个性化定制功能.适用创业的伙伴以及企业使用 能够做自己的社交系统,交易系统,资源存储系统 产品功能:支持PC端 支持手机端 产品更新 2023-02-25更新: ...

最新文章

  1. LeetCode Populating Next Right Pointers in Each Node II(dfs)
  2. git delete file remote
  3. java连接stk外部接口_SLWSTK无线开发工具上的外扩串口如何使用(虚拟串口/VCOM)...
  4. C与CPP 在线手册查找
  5. 特征工程(part5)--分类型变量
  6. 错误:this is incompatible with sql_mode=only_full_group_by
  7. Java基础---File类,就是这么简单
  8. 微博广告推荐策略工程架构体系演进
  9. 右左法则解决复杂声明
  10. 【心情】换个皮肤试试看
  11. 关于一些Excel宏病毒的清除方法整理合集
  12. win10系统下将DMG转为ISO镜像——(虚拟机黑苹果操作)
  13. docker mysql 镜像 下载_docker mysql 镜像下载
  14. 微信:公众号授权登录
  15. hdmi 计算机 接口类型,HDMI接口有几种规格尺寸?高清HDMI接口知识大扫盲
  16. 《数字信号处理》正弦信号的波形及频谱的求解
  17. Classic Shell给你的Win8/7装上更好用的开始菜单
  18. 扭蛋机html源码,jQuery动画扭蛋机抽奖代码
  19. 微博舆情 之 自然语言处理
  20. 腾讯内部推出”Netty速成手册“,三天走向实战,面试不是洒洒水?

热门文章

  1. android去掉titlebar
  2. Java Swing Mysql实现的汽车租赁租车管理系统源码附带设计报告及视频导入运行教程
  3. 如何利用计算机实现非线性转换,基于cass数控绕线机非线性算法的设计与实现-计算机应用技术专业论文.docx...
  4. c++:怎么将ctime时间转化为一个具体的秒数值_Linux下如何删除长时间不使用的旧文件?...
  5. svn 同步备份的所有问题,亲测可用
  6. python 归纳 (二二)_多进程数据共享和同步_管道Pipe
  7. L1 loss L2 loss
  8. 1701. Ostap and Partners(并查集-关系)
  9. [转载] 杜拉拉升职记——53 自由自在地活
  10. 华为云welink成像是反的_华为云Welink下载_华为云Welink 中文版 v6.6.6.0_Win10镜像官网...