1.Node中的模块系统
(1)使用node编写应用程序主要使用
EcamScript语言
和浏览器不一样,在这里没有bom和dom
2.核心模块
(1)文件操作 fs
(2)http服务的http
(3)url路径操作模块
(4)path路径处理模块
(5)os操作系统信息
3.第三方模块
(1)art-template(目前已知)
(2)须通过npm下载使用
4.commonjs模块规范
(1)模块系统
(1)模块作用域
(2)使用require方法加载模块
(3)使用exports接口对象导出模块中的元素(成员)
5.exports 和 module.exports的区别
(1)每个模块中都有一个 module 对象
(2)module 对象中有一个exports 对象
(3)我们最终实际上是把所有要导出的成员都挂载到了module.exports接口对象
上
(4)最终return 的是 module.exports
(5)Node 为了开发人员操作方便,在每个模块中提供个一个成员"exports";
(6)即默认有 exports === module.exports,但是我们可以改变他们之间的关系,让他们不相等
(7)默认 exports是对module.exports的一个引用,即他俩所指向的对象是相同的(这里说的是默认情况下是相同的
如果你自己改变了引用,那他们就不在相同了)
6.require加载规则
(1)优先从缓存加载
(2)判断模块标识
重点:第三方模块加载方式
7.npm(node package manager)
(1)npm网站 (npmjs.com)
(2)npm命令行工具
安装 node同时也就已经安装了npm
1.查询npm版本号
在cmd中输入npm -v或者npm -version即可
2.升级npm
在cmd中输入 npm install --global npm
3.常用命令 博客(https://www.cnblogs.com/PeunZhang/p/5553574.html)
(1)npm init
npm init-y可以跳过向导,快速生成(直接生成的是package.json(包描述文件) )
(2)npm install 包名
只下载
npm i 包名
(3)npm install --save 包名
下载并且保存依赖项(package.json文件中的dependencies选项)
npm i-S 包名
(4)npm uninstall 包名
只删除,如果有依赖项依然会保存
npm un 包名
(5)npm uninstall --save 包名
删除并去掉依赖项(package.json文件中的dependencies选项)
npm un-S 包名
(6)npm help
查看使用帮助
npm 命令(例如install) --help
查看指定命令的简写方式
4.npm被墙问题(淘宝 NPM 镜像 https://developer.aliyun.com/mirror/NPM?from=tnpm)
解释:就是有时下载一个东西很慢很慢,所有才有了这个东西 注意:
(1)建议每一个项目要有一个package.json文件
npm init 初始化出来
特别情况下可能需要自己创建
这个文件一般被称为(包描述文件,像一个说明书)
(2)npm install(i) (--save)xxx --save
save可以在前边也可以在后边,save的作用是保存依赖包的信息
LZ小知识:
(1)slice(start,end)指的是从start开始到end(在这个之前)
(2)想了解更多底层原理 看《深入浅出Node.js》
(3)cls清屏(cmd的界面)
(4)临时重定向与永久重定向
301(永久重定向)浏览器会记住
302(临时重定向)浏览器不会记住
浏览器会记住:例子
比方说你访问a.com这个网址然后跳到界面会跳到b.com
在下一次访问的时候就直接跳到b.com(原因是浏览器记住了,所以
浏览器中会存在缓存数据,这样一来下次访问的就相对快一点,因为这次是从本地找到
的数据,而不是向服务器发请求获取数据)
浏览器不记住
当你下次访问时a.com会先访问服务器然后在跳到b.com,所以会相对慢一点