关于nodejs单页企业应用框架的思考
发布于 16 天前 作者 151263 255 次浏览 来自 分享

QQ截图20161218011806.png

文件夹结构:

  • dao 访问数据库的DAO层
  • node_modules nodejs第三方模块
  • srv 后端服务层
  • util 工具
  • web 前端网页层
  • config.js 配置文件,配置端口号,日志路径等
  • jdbc.js 数据库连接配置

登录示例:

QQ截图20161218013843.png QQ截图20161218013802.png

  • 其中 h:apply="./Login" 为自定义属性, 代表此html受到 ./Login.coffee 文件的控制 QQ截图20161218014320.png
  • 点击登录按钮之后, 调用 ./Login.coffee 文件中 commitClk 方法
  • commitClk 方法再通过 rss = await o.thisSrv.ajax “login”,[eny.code,eny.password,eny.lang] 调用后台 srv 服务层 srv/usr/LoginSrv.coffeelogin 方法, 传入参数为 eny.code,eny.password,eny.lang ,返回对象为rss QQ截图20161218015018.png
  • 后台服务层srv/usr/LoginSrv.coffee 已经定义好 login 方法
  • login 方法将会接收到前端的参数 (reqOpt,code,password,lang) 用户名,密码,语言
  • 其中 reqOpt 为服务层所有函数固定的参数,用于串联整个请求过程
  • 其中 @login”:{isTran:true,notSid:true}isTran 代表此方法是否启用数据库事务, 若启用事务, 方法执行前,会开启事务, 执行完毕后,会自动提交事务, 执行过程中若报错,则自动回滚事务, (声明式事务)
  • notSid 代表此方法不判断用户是否已经登录的检查, 是否检查会话ID, 本身就是用来登录的方法, 必然也不需要检查会话ID是否存在
  • 最后 rvObj 对象返回给前端, 告诉前端是否登录成功, 也就是前端收到的 rss

核心理念是, 前端可以直接调用后端的方法,传递参数,返回对象, 而无需知道内部的通信过程

(未完待续…也不一定会再续…)

回到顶部