认识Node
Js 前端语言,运行在了浏览器,浏览器的js没有读写文件的功能
input:type=file 可以选中自己本地的资源;
Node.js : Js在服务器运行(基于Node运行),能够对服务器的文件进行操作读写;
把Node安装在了服务器上,在node环境下运行js;node赋予了js进行I/O操作的能力
I/O : I:input 输入 O:outPut : 输出 通过Node.js可以更改读写文件内容;
学习在Node环境下,js的语法都有什么
客户端:window : 在客户端中JS全局对象是window(很多内置的属性和方法) 前端
服务器:global:在node中运行js,全局对象是global; 后台
1.Node是基于V8引擎渲染和解析JS,它不是后台语言,是一个工具或者环境,用来解析JS的工具和环境。为什么说是后台语言,主要是一般会把NOde安装在服务器上,在服务器上运行JS代码,通过Node解析的JS代码可以做服务器的一些事情;
1) : 我们学习webpack,webpack编译打包工具,基于node运行的
2) : npm 安装一些模块 npm install jquery --save-dev npmjs.com
2. 基于Node构建中小型项目(js是一门全栈语言)
Node中的npm
1.Npm : 跟随安装node时,一并下载了Npm;下载完Node,那么大家可以使用Npm命令
把模块安装在全局环境和安装在当前项目中;
安装在全局的命令 npm install jquery --global(npm install -g jquery);
安装在本地项目中:npm install XXX;
package.json :记录安装过得模块的小本本;npm init -y;
把模块安装设置为开发依赖(开发中):npm install less --save-dev
把模块设置为生产依赖(部署到服务器上) :npm install axios(npm install axios --save)
npm uninstall less --save-dev;
bable-loader : 用来把es6编译成es5的模块,代码最后上线的时候是es5;在项目部署到服务器之前需要把es6通过babel-loader编译成es5;当项目上线就不再需要babel-loader;所以这就是一个开发依赖;
安装到全局和安装到本地区别
1) 安装到全局对任何项目都有作用 查看全局的路径:npm root -g ;/// C:\Users\Administrator\AppData\Roaming\npm\node_modules
2) 只能针对当前项目有用
在安装模块之前,一般先npm init -y,生成一个package.json配置文件
把安装的模块生成配置清单,存放在package.json文件中,后期别人需要部署项目时,只需要执行npm i就可以安装package.json中所有的依赖,这叫跑环境;
npm i : 把开发和生产依赖都安装一遍
npm i --production : 只安装生产依赖的模块
npmjs.com 官网有这个模块,才可以安装成功;npm uninstall axios
package.json,可以基于scripts选项配置本地可以执行的脚本命令;
npm run + script的属性名,相当于把这个属性名对应的属性值放在命令窗口执行一次;
开发环境: 正在开发的项目的代码
生产环境: 是指上线的项目代码;
主干:生产环境的代码
分支: 开发环境的代码
Node的模块管理规范
AMD :requre.js
CMD : sea.js
Common.js :node.js
什么模块: 一个JS文件就是一个模块;这些模块化思想,规定了js中我们的模块如何创建,如何导导入,以及如何导出
Node中的模块管理
1. 在Node环境下,我们创建一个js,相当于创建了一个新的模块,模块中的方法都是这个模块私有的方法,不同的模块中同名方法不会有任何冲突
2.Node给其提供一个导出模块中的方法的语法:module.exports = {};
3. require是Node中天生提供的用来导入模块的方法;require导入的模块是同步,a中的代码从前到后需要解析一遍,并且没有导入完成,不能做后面的事
1.内置模块(核心模块) 2. 第三方模块(axios.jquery.vue) 3. 自定义模块(自己创建的js)
注意事项
1): 可以省略后缀名.js
2) : 如果是调用自己的自定义模块,则需要加上相对路径 /(根目录) ./(当前目录) ../ (上级目录)
3) :不加地址,先找第三方模块,然后再找核心模块,如果还没有,就报错;
Node的内置模块
fs : 文件操作系统
1 . readdir :异步读取指定的文件目录;读取完毕触发第二个参数,第二个参数必须是一个回调函数;会给回调函数传入两个参数,err:读取的错误信息,result:读取的结果,如果读取成功,err是null;读取成功返回一个数组;
2. readdirSync: 同步读取指定的目录,返回一个数组,数组中包含了目录的字符串 当读取完成以后,执行下面的方法;
3. readFileSync : 读文件;在Node读取文件内容默认是一个buffer的文件流;0-9a-f;每一个汉字或字母都有其固定对应一个buffer数据;
4. readFile:异步读取文件;
5. writeFile: 想某个文件中写入内容,把之前的进行覆盖;
6. writeFileSync;
7. ’appendFileSync:追加内容;
8. appendFile:异步追加内容;
9. copyFileSync:把文件拷贝一份,放到新的文件中,并且把之前的内容进行覆盖;
10.copyFile:异步拷贝;
11.unLink:异步删除文件;
12.mkdir:创建文件夹