node杂谈
node之path模块
path模块是nodejs提供给用户进行路径相关操作的一个模块,方便用户定位文件的位置,以及一些其他与文件位置定位的方法。
引入方法
var path = require('path');
常用方法
1. 路径拼接
var p = path.join([...paths]);
path.join('/foo', 'bar', 'baz/asdf', 'quux', '..')
// Returns: '/foo/bar/baz/asdf'
2. 获取某路径的父级目录
path.dirname(path)
3. 获取某文件的扩展名
path.extname(path)
node 之 fs模块
计算机语言是与计算机进行沟通的手段,而文件操作是其中最为重要也是常见的操作。所以,首先从node.js文件读写开始。
File System
模块使用方法
var fs = require('fs');
——–常见文件操作———-
1.读取文件
函数原型:
fs.readFile(file[, options], callback)
- file (String/Buffer) 文件路径,或者写一个descriptor
- options
- encoding (String/Null)默认是Null
- flag (String)默认是
'r'
;
- callback 函数参数(err, data)
// 如果没有指定读取的编码,返回的data是字节流。
// 异步的方式读取文件
fs.readFile('文件path', (err, data) => {
if (err) throw err;
console.log(data);
});
// 同步方式读取文件
// 注意这里返回的是二进制流
var result = fs.readFileSync('文件path');
// 这里返回的是文件的字符串
var result = fs.readFileSync('文件path','utf8');
2.写入文件
函数原型:
fs.writeFile(file,data,[, options], callback)
- file (String/Buffer) 文件路径,或者写一个descriptor
- options
- encoding (String/Null)默认是Null
- mode (Int) default = 0o666
- flag (String)默认是
'r'
;
- callback 函数参数(err)
// 异步的方式写入文件
fs.writeFile("文件path","写入内容",(err)=>{
if(err) throw err;
console.log("写入完毕");
});
// 同步的方式写入文件
var err = fs.writeFileSync(path,str);
// 如果没有错误err为undefined
if(err) throw err;
3.在当前文件中添加字符
函数原型:
fs.appendFile(file, data[, options], callback)
- option
- encoding
| default = 'utf8' - mode
default = 0o666 - flag
default = 'a'
- encoding
fs.appendFile("filepath","data to appen",(err)=>{
if (err) throw err;
})
fs.appendFileSync('filepath', 'data to append');
4.删除文件
函数原型:
fs.unlink(path,callback)
- path (String/Buffer)
- callback 函数参数(err)
// 异步的方式写入文件
fs.unlink(path, (err)=>{
if(err) {
console.log("删除失败!!!!(异步)");
throw err;
}
})
var err = fs.unlinkSync(path);
if(err) {
console.log("删除失败 同步");
throw err;
}
5.文件重命名
函数原型:
fs.rename(oldPath, newPath, callback)
- oldPath 原来叫啥
- newPath 要改成啥
- 回调,没参数。
//异步
fs.rename("../file/file1.txt", "../file/新的文件.txt", ()=>{
})
fs.renameSync("../file/file1.txt", "../file/新的文件.txt");
6.判断文件是否存在
fs.access('filepath', (err) => {
if (!err) {
console.error('文件存在');
return;
}
});
—–文件夹操作—–
1.创建文件夹
函数原型
fs.mkdir(path[, mode], callback)
- mode 一般没啥用,不用改。
2. 删除文件夹
函数原型
fs.rmdir(path, callback)
node 日志系统
var fs = require('fs');
var Console = require('console').Console;
const output = fs.createWriteStream('./log/日志.log');
const errorOutput = fs.createWriteStream('./log/错误日志.log');
const logger = new Console(output, errorOutput);
const count = 5;
logger.log('count: %d', count);
logger.log("大家好,我是一个日志");
logger.error("我是一条错误日志");