Node.js学习总结

212 阅读3分钟

Node.js学习总结

Node.js的定义

Node.js 是一个基于 Chrome V8 引擎 的 JavaScript 运行时环境

作用

浏览器是js的前端运行环境

1652184162075

Node.js是js的后端的运行环境

1652184172730

Node.js环境与浏览器环境的区别

1652184256396

为什么要学node.js

  • 使自己的技术更加全面
  • 通过npm工具来安装,卸载第三方包
  • 为学习VUE打下基础

Node.js的安装及使用

nodejs.org/zh-cn/

1652184391375

小黑窗打开方式

jingyan.baidu.com/article/375…

1652184498857

常见的命令及按键

img

复制和粘贴

  1. 在小黑窗中复制内容:选中内容,再点鼠标右键
  2. 把粘贴板中的内容复制到小黑窗: 直接在小黑窗点鼠标右键

核心模块-文件读写

读写文件时注意要先引入模块

同步异步概念理解

1652186276114

同步读取文件

语法

  • path,读取文件的路径(相对路径或绝对路径)
  • options:读取文件的参数配置,通常用一个utf8字符串表示即可

let res = fs.readFileSync(path[, options])

const fs = require('fs')

// fs.readFile()

// Sync   同步的意思,按书写顺序执行
console.log(111)
const data = fs.readFileSync('./1.txt')
console.log('文本', data.toString())
console.log(222)
const data2 = fs.readFileSync('./bg.jpg')
console.log('图片', data2)
console.log(333)

捕捉同步读文件的错误

同步没有返回值 所以只能用try catch方法来捕获

const fs = require('fs')

// fs.readFile()

// Sync    同步的意思,按书写顺序执行
try {
  const data = fs.readFileSync('./123.txt')
  console.log(data.toString())
} catch (error) {
  console.log('读取文件失败了', error.message)
}

// try {
//   // 业务代码
// } catch (error) {
//   // 如果业务代码出错,catch 结构会捕获到错误
// }

异步读取文件

语法

  • path,读取文件的路径(相对路径或绝对路径)
  • options:读取文件的参数配置,通常用一个utf8字符串表示即可
  • callback:读取完毕的回调函数(err,data)=>{}

fs.readFile(path[, options], callback)

const fs = require('fs')

// err    错误对象,如果读取文件成功 err 的 值为 null
// data   读取到的数据,如果读取失败 data 的值为 undefined
// 🎯总结:err 和 data 都是二选一
// fs.readFile('./1.txt', (err, data) => {
//   if (err) {
//     console.log('文件读取错误')
//   } else {
//     console.log('data', data)
//   }
// })

fs.readFile('./1.txt', (err, data) => {
  // 情况1:如果读取有错误,return 退出函数,同时打印提示用户
  if (err) return console.log('文件读取错误')
  // 情况2:打印读取到的文件数据
  console.log('data', data.toString())
  // debugger
})

异步读取文件注意事项

const fs = require('fs')

console.log(111)
fs.readFile('./bg.jpg', (err, data) => {
  console.log(222)
})

console.log(333)

fs.readFile('./1.txt', (err, data) => {
  console.log(444)
})
console.log(555)
//输出结果 13524

同步写入文件(了解)

语法

fs.writeFileSync(path,data[, options])

  • path,被写入文件的路径(相对路径或绝对路径)
  • data,要写入的内容,字符串格式
  • options:写入文件的参数配置,默认是utf8编码

特点

writeFile方法是覆盖式写入,后面的内容会将前面的内容覆

const fs = require('fs')

// 如果要处理失败的情况,其实同步写起来反而更麻烦(了解即可)
try {
  fs.writeFileSync('E:/1.txt', '准备下课')
  console.log('写入成功')
} catch (error) {
  console.log('写入失败')
}

异步写入文件

语法

  • path,被写入文件的路径(相对路径或绝对路径)
  • data,要写入的内容,字符串格式
  • options:写入文件的参数配置,默认是utf8编码
  • callback:写入完毕的回调函数(err)=>{}

fs.writeFile(path,data[, options], callback)

特点

writeFile方法是覆盖式写入,后面的内容会将前面的内容覆盖

const fs = require('fs')


//语法:writeFile('写入地址(如果没有就直接帮你创建一个,除非你电脑没有这个地址比如你电脑没有G盘)',"要写入的文本","错误提示")
//写入的数据会直接覆盖以前的数据

fs.writeFile('./2.txt', '彭瑶66666', (err) => {
   if (err) return console.log("写入错误");
   console.log("写入成功");
})

异步写入对象式数据

const fs = require('fs')

const arr = [{id:1},{id:2}]

/* 
    注意事项
        fs.writeFile()第二个参数的要求为字符串类型
        JSON.stringify()把对象转换成JSON字符串
*/

fs.writeFile('./data.json',JSON.stringify(arr),err=>{
    if(err) return console.log("写入错误");
    console.log("写入成功");
})

核心模块Http实现一个web服务器

1652355782015