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'
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("我是一条错误日志");

上篇js中string常用操作
下篇js-number