NodeJs学习记录(一)

131 阅读3分钟
  • __filename: 返回正在执行脚本文件的绝对路径
  • __dirname: 返回正在执行脚本所在目录
  • timmer类函数:执行顺序与事件循环间的关系
  • process: 提供与当前进程互动的接口
  • require: 实现模块的加载
  • module 、exports:

fs文件系统模块

fs模块是Node.js官方提供的、用来操作文件的模块。它提供另外一系列的方法和属性,用来满足用户对文件的操作需求。 例如:

  • fs.readFile() 方法,用来读取指定文件中的内容
  • fs.writeFile() 方法,用来向指定的文件中写入内容
  • 注意1、fs.writeFile() 方法只能用来创建文件,不能用来创建路径 2、重复调用fs.writeFile()写入同一个文件,新写入的内容会覆盖之前的旧内容
// fs是node安装包自带的,可以直接使用
const fs = require('fs')

fs.readFile(path[,options],callback)  // []中是可选参数
参数解读:
- 参数一:必须按参数,字符串,表示文件的路径
- 参数二:可选参数,表示以什么**编码格式**来读取文件
- 参数三:必选参数,文件读取完成后,通过回调函数拿到读取的结果

fs.readFile('./files/11.txt','utf8',function(err,result){
   console.log(err)
   console.log('---')
   console.log(result)
   if(err){
      return console.log('文件读取失败!'+err.message)
    }
  console.log('文件读取成功,内容是:'+ result)
})




fs.writeFile(path,content,callback)
参数解读:
- 参数一:表示文件的存放目录
- 参数二:表示要写入的内容
- 参数三:回调函数

fs.writeFile('./files/22.txt','abcd',function(err){
// 可以通过__dirname来拿正在执行脚本的目录路径(解决动态路径出现的问题)  
'./files/22.txt' 改为 __dirname + 'files/22.txt'
   console.log(err) // 文件写入成功,err为null,反之为一个错误对象
   console.log('---')
   console.log(result) 
   if(err){
      return console.log('文件写入失败!'+err.message)
    }
  console.log('文件写入成功')
})

path路径模块

path模块是Nodejs官方提供、用来处理路径的模块。他提供了一系列的方法和属性,用来满足用户对路径的处理需求

  • path.join() 方法,用来将多个路径片段拼接成一个完整的路径字符串
const path = require('path')
const pathStr = path.join(__dirname,'file/1.txt')
// **注意**  ../ 会抵消前面的路径
const pathStr2 = path.join('/a','/b/c','../../','./d','e')
console.log(pathStr2) // a/d/e
  • path.basename() 方法,用来从路径字符串中,将文件名解出来 使用path.basename() 方法,可以获取路径中最后一部分,经常通过这个方法获取路径中的文件名,语法格式如下
const fpath = '/a/b/c/index.html'  // 文件的存放路径

const fullName =path.basename(fpath)

console.log(fullName)  // 输出 index.html

const OnlyName = path.basename(fpath,'.html')
console.log(OnlyName)   // 输出 index
  • path.extname() 获取路径中文件的扩展名
const extName = path.extname(fpath)
console.log(extName)   // 输出 .html

http模块

  • 创建web服务器的基本步骤
  1. 导入http模块
  2. 创建web服务器实例
  3. 为服务器实例绑定request事件,监听客户端的请求
  4. 启动服务器
1.const http = require('http')
2.const server = http.createServer()
3.server.on('request', (req,res) => {
  console.log("Some visit our web server");
})
4.server.listen(3000, () => {
  console.log('server runnning at http://127.0.0.1:3000');
})

完整代码

const http = require('http')
const server = http.createServer()
server.on('request', (req,res) => {
  console.log("SomeOne visit our web server");
  // req.url 是客服端请求的URL地址
  const url = req.url
  // req.method 是客户端请求的method类型
  const method = req.method
  // const str = `Your request url is ${url},and request method is ${method}`
   const str = `您请求的url地址是${url},请求的method类型是 ${method}`
  console.log(str); 
  // 为了防止中文显示乱码的问题,需要设置响应头 Content-Type 的值为text/html; charset=utf-8
  res.setHeader('Content-Type','text/html; charset=utf-8')
  // 调用res.end() 方法,向客户端响应一些内容
  res.end(str)
})

server.listen(3000, () => {
  console.log('server runnning at http://127.0.0.1:3000');
})