Node+Vue

一、Nodejs介绍

不是脚本语言,也不是框架,是基于chrome(谷歌) V8 引擎的一个JavaScript运行平台
NodeJS使用了事件驱动和非阻塞式I/O模式
NodeJS使用了ECMAScript6标准,不能操作DOM和BOM

二、NPM介绍

NPM(Node Package Manager)Node包的管理工具
允许用户从NPM服务器下载第三方的JS库到本地
安装:NPM与Node进行了绑定,安装完Node自动就安装了NPM

三、前期准备

1.下载安装Node

2.配置Node的环境

Node+Vue
Node+Vue

3.可以通过NPM初始化项目

可以手动配置
D:\IDEA\代码\Node>npm init
也可以自动配置(采用默认参数)
D:\IDEA\代码\Node>npm init -y

4.模块安装

1.本地安装(在当前项目下安装JS库)

将js库安装到当前执行到安装命令的文件夹下
npm install jquery
npm install [email protected]

2.全局安装

npm install -g [@版本号]

3.生成环境安装

项目中用到的JS库,在打包上转后需要用到;使用本地安装
npm install --save
cnpm install vue --save

4.开发环境安装

npm install --save -dev
cnpm install eslint --save-dev

5、CNPM和NPM

使用国内的npm镜像(淘宝)每10分钟与主站同步
使用时要将cnpm进行配置
npm install -g cnpm -registry=http://registry.npm.taobao.org
配置好这些可以在cmd里面用命令执行JS文件:node (文件名):node firstNode.js

四、开发工具

Idea\webstrom\vscode

五、commonjs模块规范

1.为什么使用commonjs模块规范
JavaScript不能进行大型应用的开发,没有模块系统、资源库少、没有标准的接口等;commonjs提供弥补了javaScript没有标准的缺陷。
2.Commonjs模块规范
每一个文件就是一个模块,有自己的作用域。一个文件中可以定义变量、函数、类型。对外是不可见的。
2.1定义一个模块
创建独立的js文件,并且要对外发布一个接口
每个模块都有一个module变量,变量代表当前模块;通过模块的exports属性向外提供接口
2.2引用模块
在js文件中使用require()方法引用指定的模块
语法:
require(模块的路径)
模块路径:如果在同一个目录下使用’./'开头的相对路径
2.3模块标识
就是require()方法的参数

六、Node中的模块

1、系统(核心)模块

不用安装,可以直接使用

Buffer模块

固定长度(0-255)的,处理二进制数据的字符模块,整型数组,显示的数据
是十六进制
创建Buffer模块对象

  1. Buffer.alloc(size[,fill,[,encoding]])
    size:buffer 对象长度
    fill:初始化内容(会使用填充内容将buffer所有的空间进行填充)
    encoding:编码格式,默认utf-8
    Node+Vue

  2. Buffer.allocUnsafe(size)
    size:buffer 对象的长度
    注:此方法创建的buffer对象没有初始化,但是buffer对象中的内
    容是随机的;此方法创建的速度快
    let buf=Buffer.allocUnsafe(10);
    console.log(buf);
    Node+Vue

  3. Buffer.from(array)
    array:可以是整型数组,也可以是字符串,buffer的长度有array
    决定
    常用的方法
    a)、Buffer.byteLength(string) -> 获取字符串的字节数
    b)、Buffer.isBuffer(object) ->判断对象是否是Buffer对象
    c)、Buffer.concat(list[,totallLength]) ->连接指定的Buffer对象
    Node+Vue
    Node+Vue

  4. buf.write(string[,offset[,length[,encoding]]])
    将字符串写入Buffer对象,返回写入的字节数,主要用于
    给allocUnsafe方法创建的Buffer对象初始化
    String:要写入的内容
    Offset:开始写入的位置,默认从下标为0的位置开始
    Length:写入的长度
    Node+Vue

  5. buf.fill(value[,offset[,end[,encoding]]])
    使用value填充buffer对象,返回的是buffer对象,会将整个Buffer
    填满
    Node+Vue

  6. buf.toJSON()
    将buffer转换为JSON数据返回:json中只有两个键type和
    data);type对应的值是Buffer;data对应的是Buffer对象中的数据数组

Node+Vue
7. buf.equals(Buffer) 比较两个Buffer对象是否全等(长度和内容)
Node+Vue
8. buf.indexOf/lastIndexOf(string) 在buffer中查找指定字符返回字符第一
次(最后一次)出现的下标;不存在返回-1
Node+Vue
9. buf.slice(start[,end]) 截取buffer;start:开始的位置;end:结束的位置
(不包含):返回的是buffer对象
Node+Vue

文件系统模块 ->fs

该模块中提供了读写文件的fs
使用时前提:要使用require()方法引入此模块

  1. 读文件
    fs.readFile(path,callback)
    - path:要读取的文件的路径
    - callback:回调函数,有两个参数,第一个参数标识异常对象,第二个参数表示读取的数据
    Node+Vue

  2. 写文件
    fs.writeFile(path,data[,encoding],callback)
    - path:要写数据的文件的路径
    - data:写入的数据
    - encoding:编码格式,默认utf8
    - callback:回调函数,只有一个表示异常对象的参数
    注:如果文件不存在,创建文件;如果文件存在,则覆盖原文件
    Node+Vue

  3. 追加文件
    fs.appendFile(path,data[,encoding],callbback)
    - path:要追加数据的文件路径
    - data:要追加的数据
    - encoding:编码格式,默认utf8
    - callback:回调函数,只有一个表示异常对象的参数
    注:如果文件不存在,则创建文件写入数据Node+Vue

  4. 获取文件信息
    fs.stat(path,callback) 主要用于判断文件是否存在
    - path:文件的路径
    - callback:回调函数,有两个参数,第一个表示异常对象,第二个文件的信息对象
    注:使用文件信息对象的isFile()方法和isDirectory()方法判断是否是文件或文件夹,通过异常对象判断文件或文件夹是否存在。
    Node+Vue

  5. 重命名文件
    fs.rename(oldPathName,newPathName,callback)
    - oldPathName:原文件名
    - newPathName:新文件名
    - callback:回调函数,有一个表示异常对象的参数
    Node+Vue

  6. 删除文件
    fs.unlink(path,callback)
    - path:删除的文件路径
    - callback::回调函数,有一个表示异常对象的参数
    - 注:如果文件不存在则报错。Node+Vue

  7. 创建目录
    fs.mkdir(path[,recursive],callbacck)
    - path:新文件夹的路径
    - recursive:默认 false
    - callback:回调函数,有一个表示异常对象的参数
    - 注:不加recursive属性只能创建一级目录Node+Vue
    Node+Vue

  8. 删除目录
    fs.rmdir(path[,recursive],callback)

    • path:要删除的目录路径
    • recursive:默认false,只能删除空目录;如果为true可以删除非空目录。Node+Vue
      Node+Vue

2.自定义模块