前端框架前置知识之Node.js:fs模块、path模块、http模块、端口号介绍

什么是模块?

类似插件,封装了方法 / 属性

fs 模块- 读写文件

代码示例

javascript 复制代码
// 1. 加载 fs 模块对象
const fs = require('fs')
// 2. 写入文件内容
fs.writeFile('./test.txt', 'hello, Node.js', (err) => {
  if (err) console.log(err) //若 err不为空,则代表写入失败
  else console.log('写入成功')
})
// 3. 读取文件内容
fs.readFile('./test.txt', (err, data) => {
  if (err) console.log(err)
  // data 是 buffer 16 进制数据流对象
  // .toString() 转换成字符串
  else console.log(data.toString())
})

path 模块-路径处理

问题:Node.js 代码中,相对路径是根据终端所在路径来查找的,可能无法找到你想要的文件

举个例子

解决方法

代码示例

javascript 复制代码
const fs = require('fs')
// 1. 引入 path 模块对象
const path = require('path')
// 2. 调用 path.join() 配合 __dirname 组成目标文件的绝对路径
console.log(__dirname) //获取到的是当前文件所在的文件夹的绝对路径
fs.readFile(path.join(__dirname, '../test.txt'), (err, data) => {
  if (err) console.log(err)
  else console.log(data.toString())
})

使用 path 模块的好处在于,访问路径不受终端路径影响,代码易维护,易复用

http 模块-创建Web 服务

需求:创建Web 服务并响应内容给浏览器

代码示例

javascript 复制代码
// 1.1 加载 http 模块,创建 Web 服务对象
const http = require('http')
const server = http.createServer()
// 1.2 监听 request 请求事件,设置响应头和响应体
server.on('request', (req, res) => {
  // 设置响应头-内容类型-普通文本以及中文编码格式
  res.setHeader('Content-Type', 'text/plain;charset=utf-8')
  // 设置响应体内容,结束本次请求与响应
  res.end('欢迎使用 Node.js 和 http 模块创建的 Web 服务')
})
// 1.3 配置端口号并启动 Web 服务
server.listen(3000, () => {
  console.log('Web 服务启动成功了')
})

端口号及Web服务程序

1. 端口号的作用?

➢ 标记区分服务器里不同的服务程序

  1. 什么是Web 服务程序?

➢ 提供网上信息浏览的程序代码

相关推荐
大筒木老辈子6 分钟前
MySQL笔记---C/C++访问MySQL数据库
数据库·笔记·mysql
码事漫谈11 分钟前
解决 Anki 启动器下载错误的完整指南
前端
张永清-老清16 分钟前
每周读书与学习->初识JMeter 元件(五)
学习·jmeter·性能调优·jmeter性能测试·性能分析·干货分享·每周读书与学习
低音钢琴17 分钟前
【从零开始构建性能测试体系-02】 Apache JMeter 取样器指南:从入门到精通
学习·jmeter·apache
im_AMBER31 分钟前
Web 开发 27
前端·javascript·笔记·后端·学习·web
cimeo1 小时前
【C 学习】12.2-函数补充
学习·c#
菠萝吹雪ing1 小时前
GUI 自动化与接口自动化:概念、差异与协同落地
运维·笔记·程序人生·自动化·接口测试·gui测试
聪明的笨猪猪1 小时前
Java Redis “缓存设计”面试清单(含超通俗生活案例与深度理解)
java·经验分享·笔记·面试
蓝胖子的多啦A梦1 小时前
低版本Chrome导致弹框无法滚动的解决方案
前端·css·html·chrome浏览器·版本不同造成问题·弹框页面无法滚动
玩代码1 小时前
vue项目安装chromedriver超时解决办法
前端·javascript·vue.js