Node三个组成部分
包含.ECMAscript,全局成员,核心API成员。
打开命令行窗口的方式
按住shift + 鼠标右键 打开 命令行窗口
win + r 运行面板 输入 cmd
win + r 运行面板 输入 powershell
环境变量的配置
此电脑 --> 鼠标右键 属性 ----> 高级系统设置 --->高级页签 --->环境变量 ---> 系统变量 ---- > path ---> 新增 路径粘贴
查找规则 当前目录中查找 查找不到 回去全局系统变量中查找
node运行js文件
node 文件名称.js
node ------REPL 了解
常用命令行
切换盘符 c: D:
切换文件夹 cd ../ (上一级) cd 文件夹名称(下一级)
let
有块级作用域
没有变量声明提升
const
声明常量
声明的常量必须赋值 而且是不能再修改常量的值
有块级作用域
没有声明提升
解构赋值
let obj = {
a: 1,
b: 2
}
obj.a obj.b
let {a,b} = obj
let {a : 修改之后的变量名,b} = obj
console.log(a)
console.log(b)
箭头函数
function add(x, y) {
return x + y
}
var add = (x, y) => {
return x + y
}
var add = (x, y) => x + y 处理逻辑只有一行 将{} return 省略掉
var add = x=> x +10 只有一个形参 () {} return 省略掉
对象中的属性和方法的简写
let a = 10
let b = 20
let obj = {
a: a,
b: b,
fn:function(){}
}
-------------------------------------------------
let obj1 = {
a, 属性 如果键和值一样a:a 可简写为 a
b,
fn(){} 方法可以将 :function 省略
}
访问核心成员
语法:require('核心成员的名称')
例:const fs = require('fs')
文件操作模块
注:必须引入const fs = require('fs')
文件读取
语法:1.导入fs文件操作模块【const fs = require('fs')】
2.fs.readFile('文件路径','编码格式', function(err,data){})
例:fs.readFile('读取文件的路径',[编码格式默认是null],(err,data)=>{})
//步骤1: 导入fs核心模块
const fs = require('fs')
//步骤2: 调用fs.readFile 核心API读取文件
fs.readFile('./files/11.txt', 'utf-8', (err, data) => {
// 读取文件成功 err是一个 null 读取文件失败 err 是一个错误对象
if (err) return console.log('读取文件失败:' + err.message)
console.log('读取文件成功,内容是' + data)
})
注: 1.文件编码不能省略。
参数1:表示要读取的文件的路径
参数2: 表示要以什么样的编码格式来读取指定的文件, 默认编码格式为 null ,可省略。
参数3: 表示当文件读取完成,调用这个 callback 回调函数来处理读取的结果,第一个 参数,是 Error 对象,第二个参数,才是读取成功的结果,如果 err 为 null 就证明读取成功了,没有出错
写入文件
语法:1.导入fs文件操作模块【const fs = require('fs')】
2.fs.writeFile('文件路径', '要写入的内容','编码格式可省略', function(err){})
//步骤1: 导入fs核心模块
const fs = require('fs')5
fs.writeFile('文件路径名称', '写入的内容',[编码格式默认utf-8] ,(err) => {
// 写入文件成功 err是一个 null 写入文件失败 err 是一个错误对象
if (err) return console.log('写入文件失败:' + err.message)
console.log('写入文件成功)
})
注:1.如果在使用 fs.writeFile 的时候,要写入的文件不存在,则直接写入;如果要写入的文件路径已经存在,则会覆盖之前的文件。
参数1: 路径字符串,表示要把文件内容,写入到哪个文件中
参数2: 要写入的数据,可以给定一个 字符串
参数3: 可选参数,表示 要以什么格式写入文件内容 默认以 utf8 格式写入文件【一般默认不传递第三个参数】
参数4: 文件写入完成之后的 callback 回调函数,在回调函数中,只有一个形参,err 错误对象
文件追加
语法:1.导入fs文件操作模块【const fs = require('fs')】
2.fs.appendFile('文件路径', '要追加的内容','编码格式可省略',function(err){})
//步骤1: 导入fs核心模块
const fs = require('fs')
fs.appendFile('文件路径名称', '追加的内容',[编码格式默认utf-8] ,(err) => {
// 追加文件成功 err是一个 null 追加文件失败 err 是一个错误对象
if (err) return console.log('写入文件失败:' + err.message)
console.log('追加文件成功)
})
注:1.如果追加时候,要写入的文件不存在,则直接写入;如果要追加的文件路径已经存在,则会覆盖之前的文件。
参数1: 表示要向哪个文件中追加内容,指定一个文件的路径
参数2: 表示要追加的具体的内容,可以传递字符串内容
参数3: 可选参数;表示 追加文本内容时候的编码格式,如果省略此参数,默认以 utf8 的格式追加内容
参数4: 表示 追加完成之后的回调函数,有形参 err ,追加失败之后的错误结果
文件写入和文件追加共同特点
文件写入和文件追加的时候 如果文件不存在 都会新建文件 如果文件存在了 文件写入 writeFile 会将文件中的内容覆盖掉 appendFile 将内容追加
__dirname当前文件所在的绝对路径
语法:__dirname +'文件的相对路径'
fs.readFile(__dirname + '/files/1.txt', 'utf8', (err, data) => {
if (err) return console.log(err.message)
console.log(data)
})
注:1.前面是双下划线。
2.拼接路径时的相对路径不要加点,以/开头。
3.不依赖fs模块。
4.不包含文件的名称,只包含当前文件的根目录
__filename当前文件所在的完整路径
注:1.表示当前这个文件的 完整路径,路径中包含了具体的文件名。
读取文件信息fs.stat
语法:fs.stat( '文件路径', (err, stats) => {})
fs.stat(__dirname + '/files/1.txt', (err, stats) => {
if (err) return console.log(err.message)
console.log(stats.size) // 单位是 字节 Byte(文件大小)
console.log(stats.birthtime) // 2018年6月7日,18:19:11 2018-06-07T10:19:11.186Z
console.log(stats.isFile()) // 通过 isFile() 方法判断是否为文件,返回布尔值
console.log(stats.isDirectory()) // isDirectory() 判断是否为目录
})
注:1.第二个形参包含了一些属性和方法,方法需要加()。
复制文件 fs.copyFile
语法:fs.copyFile('读取文件的路径','复制只够新文件的路径', (err) => {})
path路径操作模块
注:必须引入const path = require('path')
path.join拼接路径
const path = require('path')
const fs = require('fs')
// 最佳实践:以后只要设计到路径拼接,一定要使用 path.join() 方法
fs.readFile(path.join(__dirname, './files/1.txt'), 'utf8', (err, dataStr) => {
if (err) return console.log(err.message)
console.log(dataStr)
})
path.sep
path.basename(path[, ext])
path.dirname(path)
path.extname(path)
|
|