Quantcast
Channel: CNode:Node.js专业中文社区
Viewing all articles
Browse latest Browse all 14821

关于nodejs单页企业应用框架的思考

$
0
0

QQ截图20161218011806.png

文件夹结构:

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

登录示例:

QQ截图20161218013843.pngQQ截图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

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

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


Viewing all articles
Browse latest Browse all 14821

Trending Articles