一、后端的规范与思想

  1. 分层
    (1)Web层(接收和发送Http请求的,封装;web层、controller层)
    (2)业务逻辑层(服务层,xxxService; )
    LoginController(接收参数,判断是否非法,传给服务层)
    LoginService(获取这个用户的密码,进行比较)
    (3)DAO层:
    DataBase(DB):存数据
    业务:对对象进行操作
    如果要存储: 对象 转为 数据
    如果要读取: 数据 转为 对象
    (4)持久层 :存在磁盘上
    文件,数据库

    每层的命名:
    web层: LoginController(接收参数,判断是否非法,传给服务层)
    服务层: LoginService(获取这个用户的密码,进行比较)
    DAO层:LoginDAO(从数据库获取数据,并转换为对象)
    Domain:User
    设计模式 :单一职责原则

  2. 模块化
    (1)Es6、导入导出;Es3、5缺点:缺少模块化概念
    (2)Js规范缺乏管理机制,Bootstrap,Jquery
    npm
    npm install XXX

    模块化:
    先创建两个文件夹 index.js 和 test.js
    重要的两点:
    比如说index.js要用到test.js中的内容,要在index.js中==引入 ==:

index.js文件中:

require('');//想引用哪个模块就写入哪个模块的路径
//比如:
var  test = require("./test.js");返回一个模块对象
console.log(test.a)

test.js文件中,要让别的文件引用这个文件内容 ,要导出(module.exports)

var  a  = 123;
var   b = "abc";//开闭原则
module.exports.a = a;
module.exports.b = b; //moodule.exports.a = a 可以简写为exports.a = a

module.exports 和exports有什么区别

我们先来举一个例子:

index.js

test.js

运行结果:

若把其中一个改为exports.a = a结果为


我们可以看到exports.a = a 和module.exports.a = a输出的结果相同,那么这就可以说明两个是完全相同的吗, 答案是不相同

  • 分析
    当我们把其中一个改了之后,结果为:


    发现值不一样了,这是为什么呢?
    我们可以画个图来看一下:

    注意:如果把module.exports换成别的对象,最后输出的也只是module.exports后面的对象的值,可以自己试着验证一下

重点

  • NodeJs的模块是运行在一个函数当中的。上面所引用的参数不是全局的变量,而是当作函数的参数传进去的。

     eg:我们创建一个文件 system.js 比如说这个函数名字为xyz
    
function   xyz(exports,require,module,_filename,dirname){//中间的内容是我们写的nodejs代码//NodeJs的模块是运行在一个函数当中的。return  module.exports;
}

在上面的index.js中输console.log(arguments); 可以全部打印出来这些参数,就可以验证这一点。

基本内置模块

  • os
    1.EOL: end of line
const os = require("os");
console.log(os.EOL);

2.arch():获取CPU的架构名
3.cpus():获取CPU每个核的信息
4.freeman():得到我们当前的内存还剩下多少
5.homedir():用户目录
6.hostname():获取主机名
7.tmpdir()::获得操作系统的临时目录

  • path
    1.basename:文件名
    2.sep:分隔符,同一块东西的内部分割
    3.delimiter:分割,块与块之间的分割
    4.dirname:获取当前路径
const dir = path.dirname("a/b/c/d.js");
console.log(dir);
//输出结果为a/b/c

5.extname :获取后缀名

NodeJs模块化(KPD)相关推荐

  1. nodejs模块化设计知识点总结

    文章目录 前言 一.什么是模块化? 1.Node中的模块化如何实现? 2.Node中的模块分类 二.自定义模块 1.加载自定义模块 三.内置模块 1.fs.readFile读取文件 2.fs.writ ...

  2. Nodejs模块化开发

    前言 对nodejs入门之后,我们经常会发现,代码中经常会出现require('')这样的代码,nodejs菜鸟教程的创建的第一个应用就使用到了require指令来载入http模块,并将实例化的htt ...

  3. 前端学习(1290):nodejs模块化的开发导出另一种方式

    demo04.js const greeting = _name => `hello ${_name}`;module.exports.greeting = greeting; demo05.j ...

  4. 前端学习(1289):nodejs模块化的开发规范

    demo02.js const add = (n1, n2) => n1 + n2exports.add = add; demo03.js const a = require('./demo02 ...

  5. 前端学习(1288):nodejs模块化开发

  6. 前端基础之《NodeJS(2)—模块化》

    一.模块化系统 1.ECMAScript5没有模块化功能(ECMAScript6有了) 比如jquery和jquery插件,要分别引入jquery.jquery插件. 2.标准库较少 3.没有标准接口 ...

  7. 深入基础(一)模块化

    简介 学习基础,JQuery 原生JS有一定基础,有自己一定技术认知(ps:原型链依然迷糊中.闭包6不起来!哎!) 当然最好有语言基础,C#,java,PHP等等.. 最初学习这个东西的原因很简单,在 ...

  8. 无法找到模块“mint-ui”的声明文件_[搬运] JavaScript 模块化:CommonJS vs AMD vs ES6...

    本文主体部分 翻译+搬运 自外网著名技术博客网站 medium.com 的一篇点赞数 2.7k 的文章 (文章链接在结尾处) 什么是 JavaScript 模块 JavaScript 模块指的是一段可 ...

  9. 一篇文章带你了解Nodejs

    1.什么是node.js? node.js是一个基于Chrome v8引擎的javascript 运行环境.Node.js使用了一个事件驱动.非阻塞式 I/O的模型,使其轻量又高效.(由c++语言编写 ...

最新文章

  1. 在Ubuntu 16.04.1 LTS上安装ats 5.3.2
  2. Luogu P1087 FBI树
  3. 案例驱动python编程入门-事件驱动程序
  4. shell的基础学习
  5. SHA256安全散列算法
  6. cocos2d-x游戏实例(21)-纵版射击游戏(8)
  7. leetcode336. 回文对(字典树)
  8. 使用Telnet命令收发E-mail
  9. # Please enter the commit message for your changes. Lines starting # with ‘#‘ will be ignored
  10. ZOJ 3645高斯消元
  11. Axure RP 9 安装、汉化
  12. android rom root权限,教你刷机包获取ROOT权限的方法
  13. 【MMD动作下载】随心所欲mercy(Kimagure Mercy)
  14. 手机html微信登录,添加手机APP微信登录支持,微信公众号单页应用网页授权登录支持...
  15. vba手机号码归属_国庆献礼-EXCEL自定义函数获取手机号码归属地及运营商信息 | Excel实例教学网 微信公众号EXCEL880...
  16. Laravel Model 的 fillable (白名单)与 guarded (黑名单)
  17. LeetCode练习题:斐波那契数列
  18. Bulldog靶机渗透
  19. 你对MySQL中的索引了解多少?
  20. 2022春招前端实习面经【美团、钉钉、快手、字节、招行、百度、拼多多、腾讯】(未完)

热门文章

  1. KA算法:一种低复杂度的预编码/接收机设计思路
  2. 换头像这个功能怎么测
  3. 商业模式(四):群硕软件,欧美客户为主的软件外包
  4. android quot;动画重叠quot;,自定义ViewPager实现仿 quot;多邻国quot; 的闪卡效果
  5. 简历类个人网站如何制作?
  6. 今天,小灰36岁了!
  7. 中国红客联盟、编程爱好者、中国站长网等追加
  8. 接了个变态需求:生成 Excel + PDF 导出,用 Java 怎么实现?
  9. 读 伯罗奔尼撒战争史
  10. HTML5页面显示本地图片,h5使用FileReader读取本地上传的图片文件并显示到浏览器...