NodeJs模块化(KPD)
一、后端的规范与思想
分层
(1)Web层(接收和发送Http请求的,封装;web层、controller层)
(2)业务逻辑层(服务层,xxxService; )
LoginController(接收参数,判断是否非法,传给服务层)
LoginService(获取这个用户的密码,进行比较)
(3)DAO层:
DataBase(DB):存数据
业务:对对象进行操作
如果要存储: 对象 转为 数据
如果要读取: 数据 转为 对象
(4)持久层 :存在磁盘上
文件,数据库每层的命名:
web层: LoginController(接收参数,判断是否非法,传给服务层)
服务层: LoginService(获取这个用户的密码,进行比较)
DAO层:LoginDAO(从数据库获取数据,并转换为对象)
Domain:User
设计模式 :单一职责原则模块化
(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)相关推荐
- nodejs模块化设计知识点总结
文章目录 前言 一.什么是模块化? 1.Node中的模块化如何实现? 2.Node中的模块分类 二.自定义模块 1.加载自定义模块 三.内置模块 1.fs.readFile读取文件 2.fs.writ ...
- Nodejs模块化开发
前言 对nodejs入门之后,我们经常会发现,代码中经常会出现require('')这样的代码,nodejs菜鸟教程的创建的第一个应用就使用到了require指令来载入http模块,并将实例化的htt ...
- 前端学习(1290):nodejs模块化的开发导出另一种方式
demo04.js const greeting = _name => `hello ${_name}`;module.exports.greeting = greeting; demo05.j ...
- 前端学习(1289):nodejs模块化的开发规范
demo02.js const add = (n1, n2) => n1 + n2exports.add = add; demo03.js const a = require('./demo02 ...
- 前端学习(1288):nodejs模块化开发
- 前端基础之《NodeJS(2)—模块化》
一.模块化系统 1.ECMAScript5没有模块化功能(ECMAScript6有了) 比如jquery和jquery插件,要分别引入jquery.jquery插件. 2.标准库较少 3.没有标准接口 ...
- 深入基础(一)模块化
简介 学习基础,JQuery 原生JS有一定基础,有自己一定技术认知(ps:原型链依然迷糊中.闭包6不起来!哎!) 当然最好有语言基础,C#,java,PHP等等.. 最初学习这个东西的原因很简单,在 ...
- 无法找到模块“mint-ui”的声明文件_[搬运] JavaScript 模块化:CommonJS vs AMD vs ES6...
本文主体部分 翻译+搬运 自外网著名技术博客网站 medium.com 的一篇点赞数 2.7k 的文章 (文章链接在结尾处) 什么是 JavaScript 模块 JavaScript 模块指的是一段可 ...
- 一篇文章带你了解Nodejs
1.什么是node.js? node.js是一个基于Chrome v8引擎的javascript 运行环境.Node.js使用了一个事件驱动.非阻塞式 I/O的模型,使其轻量又高效.(由c++语言编写 ...
最新文章
- 在Ubuntu 16.04.1 LTS上安装ats 5.3.2
- Luogu P1087 FBI树
- 案例驱动python编程入门-事件驱动程序
- shell的基础学习
- SHA256安全散列算法
- cocos2d-x游戏实例(21)-纵版射击游戏(8)
- leetcode336. 回文对(字典树)
- 使用Telnet命令收发E-mail
- # Please enter the commit message for your changes. Lines starting # with ‘#‘ will be ignored
- ZOJ 3645高斯消元
- Axure RP 9 安装、汉化
- android rom root权限,教你刷机包获取ROOT权限的方法
- 【MMD动作下载】随心所欲mercy(Kimagure Mercy)
- 手机html微信登录,添加手机APP微信登录支持,微信公众号单页应用网页授权登录支持...
- vba手机号码归属_国庆献礼-EXCEL自定义函数获取手机号码归属地及运营商信息 | Excel实例教学网 微信公众号EXCEL880...
- Laravel Model 的 fillable (白名单)与 guarded (黑名单)
- LeetCode练习题:斐波那契数列
- Bulldog靶机渗透
- 你对MySQL中的索引了解多少?
- 2022春招前端实习面经【美团、钉钉、快手、字节、招行、百度、拼多多、腾讯】(未完)
热门文章
- KA算法:一种低复杂度的预编码/接收机设计思路
- 换头像这个功能怎么测
- 商业模式(四):群硕软件,欧美客户为主的软件外包
- android quot;动画重叠quot;,自定义ViewPager实现仿 quot;多邻国quot; 的闪卡效果
- 简历类个人网站如何制作?
- 今天,小灰36岁了!
- 中国红客联盟、编程爱好者、中国站长网等追加
- 接了个变态需求:生成 Excel + PDF 导出,用 Java 怎么实现?
- 读 伯罗奔尼撒战争史
- HTML5页面显示本地图片,h5使用FileReader读取本地上传的图片文件并显示到浏览器...