Node.js

文章目录

  • 一、文件的读写
    • 1.readFile读取文件
    • 2.writeFile写入文件
  • 二、path路径模块
    • path.join():
    • path.basename():
    • path.extname()
  • 三、Http模块
    • req请求对象
    • res响应对象
    • 解决中文乱码问题
    • 完整案例

一、文件的读写

1.readFile读取文件

// 1. 调用fs模块来操作文件
let fs = require('fs')

// 2.fs.readFile()方法读取文件
//   参数1:读取文件的存放路径
//   参数2:读取文件时采用的编码格式,默认utf8
//   参数3:回调函数,拿到读取失败和成功的结果

fs.readFile('./resouce/data.txt', 'utf8', (err, dataStr) => {
  // 如果读取成功则 err值为null
  // 如果读取失败, 则err的值为错误对象, dataStr的值为undefined
  if (err) {
    return console.log('文件读取失败'+err.message)
  }
  console.log(dataStr)
})

2.writeFile写入文件

// 1. 调用fs模块来操作文件
let fs = require('fs')
// 2.fs.writeFile()方法读取文件
// 参数1:必选参数,需要指定一个文件路径的字符串。表示文件的存放路径。
// 参数2:必选参数,表示要写入的内容。
// 参数3:可选参数,表示以什么格式写入文件内容,默认值是utf8。
// 参数4:必选参数,文件写入完成后的回调函数.

// 他会清除文件中已有的内容 将新的内容添加进去
fs.writeFile('./resource/dataTest.txt','hello world!',function(err){
  if (err){
  return console.log(err)
  }
  console.log('写入成功')
})

二、path路径模块

描述:用于处理路径的模块

方法:
path.join(),用来将多个路径片段拼接成一个完整的路径字符串
path.basename(),用来从路径字符串中,将文件名解析出来
path.extname(),获取路径中的文件扩展名

path方法的导入:

let path = require('path')

path.join():

输入字符串字符串片段,返回完整的路径字符串

// 1.引入path模块
let path = require('path')

let pathJoin = path.join('../', 'Node/','resource/', 'data.txt')
console.log(pathJoin)//..\Node\resource\data.txt

// 读取文件内容
let fs = require('fs')
fs.readFile(pathJoin, (err, dataStr) => {
  if (err) {
    return console.log(err)
  }
  console.log(dataStr.toString())
})

path.basename():

输入路径和文件拓展名,返回路径中的最后一个部分,通常用来获取文件名

let path = require('path')
let pathBasename = path.basename('../Node/resource/data.txt','.txt')
console.log(pathBasename)// data

path.extname()

输入一个路径字符串,返回得到的拓展名字符串

// 读取文件拓展名
let pathExtname = path.extname(pathJoin)
console.log(pathExtname)// .txt

三、Http模块

描述:用来创建web服务器的模块。

req请求对象

描述:只要服务器收到了客户端请求,就会调用sever.on()为服务器绑定的request事件处理函数

属性和方法:

  1. req.url 客户端请求的url地址
  2. req.method客户端method请求类型(get、post等)

res响应对象

描述:返回需要发送到客户端的内容

  1. res.end 向客户端发送指定内容,并结束请求的处理过程

解决中文乱码问题

当调用res.end方法,向客户端发送中文内容时,会出现乱码。需要手动设置内容的编码格式

res.setHeader(name,value)

完整案例

// 1.导入http模块
let http = require('http')

// 2.创建web服务器实例
let webServer = http.createServer()

// 3.通过on方法为服务器绑定request事件
// 当有客户端执行request方法时(请求服务器),会触发回调函数
webServer.on('request', (req, res) => {
  let url = req.url // req.url 客户端请求的url地址
  let method = req.method// req.method 客户端的请求类型
  // 当request触发时执行
  // console.log(`url:${url},method:${method}`)
  // 设置响应头和编码格式
  res.setHeader('Content-Type', 'text/html;charset=utf-8')
  // 向客户端响应添加内容
  res.end(`地址url:${url},method:${method}`)
})

// 4.启动服务器
webServer.listen(80, () => {
  console.log('heep server running at http://127.0.0.1')
})

你可能感兴趣的:(Node.js,node.js,javascript,前端)