集团主站
欢迎来到成都达内官方网站!达内—美国上市公司 亿元级外企IT培训企业!
成都it培训哪家好
成都it培训哪家好
全国服务监督电话:15023458194  |   联系客服   |
当前位置:主页 > 培训课程 > web前端 >

成都web前端分享后端的规范与思想

发布者: 成都达内     浏览次数:     发布时间:2019-07-09 11:36:43

Web层 (接收和发送HTTP请求的,封装;别名controller层),业务逻辑层 (别名服务层,文件常以xxxService为名),DAO层 (Date Access Object,数据访问对象,对对象进行操作,存储是对象转为数据,读取是...

  分层

  Web层 (接收和发送HTTP请求的,封装;别名controller层)

  业务逻辑层 (别名服务层,文件常以xxxService为名)

  DAO层 (Date Access Object,数据访问对象,对对象进行操作,存储是对象转为数据,读取是数据转为对象)

  持久层 (持久层,将数据长久的保存,如数据库)

  如实现一个登陆功能:

  Web层: LoginController接受参数,判断是否非法,然后传给服务层

  服务层: LoginService通过DAO层从数据库获取数据,拿到User和收到的数据进行比对,

  DAO层: 从数据库获取数据并转换为对象

  Domain: User对象实体

  需要遵循单一职责原则

  模块化

  导入导出

  ES6支持导入和导出,ES3,5缺乏相关概念

  JS规范缺乏管理机制,不同的库没有统一的下载地址

  Nodejs的Npm包管理工具能解决这些缺陷(从中央仓库下载)

  node引入系统自带模块时,直接require模块名即可,如果是自己的模块,则需要带上路径:

  系统自带的文件: require("http");

  用户自定义文件: require("./src/index.js");

  想要在另一个文件中引入当前文件的变量,则需要在本文件中将其导出:

  导出:module.export = a; //如果导出多个请使用对象

  或者使用:exports a;

  引入: let a = import("./test.js");

  console.log(a)

  module.export与exports

  如果二者同时使用,那么会导出module.export的值,exports会失效;

  module.exports === exports,说明二者最开始都是空对象且引用同一个对象

  成都web前端分享后端的规范与思想

  但是如果在一个模块中同时使用两种导出,那么他们的所引用的地址就不同了:

  如:最开始module.exports和exports同时指向地址0x11111

  在模块中exports=a;module.exports=b;之后,他们的引用地址就不同了(这里主要是说明分开导出,即写多个),所以其实无法实现两种混合导出最后导出对象拥有所有属性的情况。

  因此,应尽量使用module.exports而避免使用exports来导出

  为什么可以直接使用require等模块?

  我们可以直接使用rquire exports module __dirname __filename等这些非系统模块,他们是在哪里定义的?

  这些都是属于NodeJS的模块,而NodeJS的模块是运行在一个函数之中的,这个函数拥有一些参数,其中包含module等,而我们所写的内容在这个函数体的中间部分,大致长这样:

  function nodeModule(module,exports,reqiure,__filename,__dirname){

  ----------

  我们所写的内容

  ----------

  return module.export

  }

  我们之所以能用这些模块,是因为被当做参数传进来了,并且返回的是module.exports,这也就是为什么exports会失效了

  如何证明上述观点

  上面提到模块是运行在一个函数内,且require等是被当做参数传递进来,那么我们可以尝试打印arguments,要知道arguments仅能在函数中起作用:

  成都web前端分享后端的规范与思想

  可以看出5个参数分别对应:exports,require,module,__filename,__dirname,可以使用arguments下标去分别验证(如argument[1]===require)

(责任编辑:范老师)
最新开班
  • 成都Java培训班
    免费试听名额发放中...
  • 成都C++培训班
    免费试听名额发放中...
  • 成都PHP培训班
    免费试听名额发放中...
  • 成都网络工程培训班
    免费试听名额发放中...
  • 成都Unity3D培训班
    免费试听名额发放中...
  • 成都大数据培训班
    免费试听名额发放中...
  • 成都uid培训班
    免费试听名额发放中...
  • 成都会计培训班
    免费试听名额发放中...
  • 成都Python培训班
    免费试听名额发放中...
  • 成都嵌入式培训班
    免费试听名额发放中...
  • 成都web培训班
    免费试听名额发放中...
  • 成都软件测试培训班
    免费试听名额发放中...
在线留言
提交

校区地址:绵阳市涪城区临园路东段68号富临大都会7栋3单元9层12号

联系电话:15023458194

公交路线:富乐路口凯德广场(10路;29路;3路;15路;11路;15a路;71路)

校区地址:成都市锦江区东大街紫东楼端35号明宇金融广场19楼1906室

联系电话:15023458194

公交路线:芷泉街(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:成都市高新区奥克斯广场蜀锦路209号一楼商铺

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

校区地址:成都锦江区东大街芷泉街229号东方广场C座3楼303

联系电话:15023458194

公交路线:芷泉街(188路;115路;515路;236路;505路;501路;84路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:成都市武侯区佳灵路3号红牌楼广场2号写字楼11楼1115号

联系电话:15023458194

公交路线:红牌楼东(11路;92路;100路;111路;139路;g28路;快速公交K1/K2) 地铁路线:红牌楼站(地铁3号线)

校区地址:成都市锦江区红星路二段70号四川日报大厦502-2

联系电话:15023458194

公交路线:市二医院站(6路;49路;102路;5路;37路;g92路;) 地铁路线:地铁市二医院(地铁3号线)

校区地址:成都市锦江区东大街芷泉段229号东方广场C座16层

联系电话:15023458194

公交路线:芷泉街(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:四川省成都市武侯区高新科技孵化园9号园区E座7楼

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

校区地址:成都市人民南路一段86号“城市之心”大厦26楼

联系电话:15023458194

公交路线:成都市人民南路(6路;14路;42路;72路;76路;1010路;)

校区地址:成都市高新区奥克斯广场B座1708

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

了解达内动态
关注成都达内教育公众号

首页 | 关于达内 | 课程中心 | 专家师资 | 视频教程 | 学员空间 | 校企合作 | 新闻资讯 | 就业指导 | 网站地图

2016-2025 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56