Node系列学习之日志(一)

289 阅读2分钟

这是我参与更文挑战的第29天,活动详情查看:更文挑战

食言了~ 看上篇: Node系列学习之暂结篇

本来以为Node系列要暂时的告别一下了, 准备去搞部署了, 做完登录还有其他功能接口完成后,准备部署上线了, 在上篇文章中还稍稍总结了一下, 结果发现, 还有日志没做, 日志后面还有安全,虽然只是初涉... 日志好像跟登录一样, 也是个大模块, 要花费不少时间去学, 不说了, 慢慢来吧, 不能急~

日志简介

  • 访问日志 axcess log
  • 自定义日志(包括自义定事件, 错误记录等)

文件读取与写入Demo

const fs = require('fs')
const path = require('path')

const fileName = path.resolve(__dirname, 'data.txt')

// 读取文件内容
// fs.readFile(fileName, (err,data) => {
//   if(err) {
//     console.log(err);
//     return
//   }
//   console.log(data.toString());
// })

// 写入文件
const content = '这是新写入的内容\n'
const opt = {
  flag: 'a' // a: append, 追加写入, w: write, 覆盖写入
}
fs.writeFile(fileName, content, opt, err => {
  if (err) {
    console.log(err)
  }
})

Stream

demo

/*
 * @Author: Tmier
 * @Date: 2021-06-29 23:04:28
 * @LastEditTime: 2021-06-29 23:40:41
 * @Description: 
 * @LastModifiedBy: Tmier
 */
// 标准输入输出
// process.stdin.pipe(process.stdout)

// const http = require('http')
// const server = http.createServer((req,res) => {
//   if(req.method == 'POST') {
//     req.pipe(res)
//   }
// })
// server.listen(8000)

// 复制文件
// const fs = require('fs')
// const path = require('path')
// 两个文件名
// const fileName1 = path.resolve(__dirname, 'data.txt') // 获取文件地址
// const fileName2 = path.resolve(__dirname, 'data-bak.txt')
// 读取文件的 stream 对象
// const readStream = fs.createReadStream(fileName1) // 创建读取流
// 写入文件的stream 对象
// const wirteStream = fs.createWriteStream(fileName2) // 创建写入流
// 执行拷贝, 通过pipe
// readStream.pipe(wirteStream)
// 数据读取完成, 即拷贝完成 
// readStream.on('data', chunk => { // 监听流
//   console.log(chunk.toString());
// })
// readStream.on('end', () => {
//   console.log('copy done!');
// })


// 文件IO与网络IO结合
const http = require('http')
const fs = require('fs')
const path = require('path')
const fileName1 = path.resolve(__dirname, 'data.txt')
const server = http.createServer((req,res) => {
  if(req.method == 'GET') {
    const readStream = fs.createReadStream(fileName1)
    readStream.pipe(res)
  }
})
server.listen(8000)

上面的几个小Demo完成了文件的读取与复制, 对流有了比较深入的了解了, 等明天有时间的话, 开始写接口的日志, 大概是三个,: access.log, error.log, event.log, 学习完这几个Demo后又看了下后面的内容, 发现日志这个模块好像讲的也不多, 也没有讲很深, 主要就是对文件的一些操作, 也没有很麻烦...