前言:Node.js 是基于 Chrome 的 V8 引擎封装,独立执行 JavaScript 代码的环境,Node.js 与浏览器环境的 JS 最大区别是Node.js 环境中没有 BOM 和 DOM。主要用来编写后端程序(提供数据和网页资源等)和前端工程化(集成各种开发中使用的工具和技术)。
fs 模块 - 读写文件
fs封装了与本机文件系统进行交互的,方法/属性
// 1. 加载 fs 模块对象const fs = require('fs') // fs是模块标识符:模块的名字// 2. 写入文件内容fs.writeFile('文件路径', '文本内容', (err) => {// 写入后的回调函数})// 3. 读取文件内容fs.readFile('文件路径', (err, data) => { // 读取后的回调函数 // data 是 文件内容的 Bufffer 16进制 数据流 .toString 转换成字符串})
path 模块 - 路径处理
建议在 Node.js 代码中,使用绝对路径,因为代码的相对路径是以终端所在文件夹为起点,而不是 Vscode 资源管理器,容易造成目标文件找不到的错误
const fs = require('fs')// 1. 引入 path 模块对象const path = require('path')// 2. 调用 path.join() 配合 __dirname 组成目标文件的绝对路径fs.readFile(path.join(__dirname, '../test.txt'), (err, data) => { if (err) console.log(err) else console.log(data.toString())})
URL 中的端口号
URL:统一资源定位符,简称网址,用于访问服务器里的资源
端口号:标记服务器里不同功能的服务程序
端口号范围:0-65535 之间的任意整数(http 协议,默认访问 80 端口)
http 模块-创建 Web 服务
// 1 加载 http 模块,创建 Web 服务对象const http = require('http')const server = http.createServer()// 2 监听 request 请求事件,设置响应头和响应体server.on('request', (req, res) => { // 设置响应头-内容类型-普通文本以及中文编码格式 res.setHeader('Content-Type', 'text/plain;charset=utf-8') // 设置响应体内容,结束本次请求与响应 res.end('欢迎使用 Node.js 和 http 模块创建的 Web 服务')})// 3 配置端口号并启动 Web 服务server.listen(3000, () => { console.log('Web 服务启动成功了')})
Node.js 模块化
每个文件都是独立的模块,这些模块可以提高代码复用性,按需加载,是独立作用域,使用特定语法,导出和导入使用
CommonJS 标准
1.导出:module.exports= {}2.导入:require('模块名或路径')
内置模块:直接写名字(例如:fs,path,http) 自定义模块:写模块文件路径(例如:./utils.js)
ECMAScript 标准
- 默认导出和导入
1.导出:export default {}2.导入:import
变量名 from '模块名或路径' // 路径文件名.js不可省
Node.js 默认支持 CommonJS 标准语法,如需使用 ECMAScript 标准语法,在运行模块所在文件夹新建 package.json 文件,并设置 { "type" : "module" }
- 命名导出和导入
1.导出:export 修饰定义语句2.导入:import { 同名变量 } from '模块名或路径'
tips:
按需加载,使用命名导出和导入;全部加载,使用默认导出和导入
CommonJS 标准:一般应用在 Node.js 项目环境中
ECMAScript 标准:一般应用在前端工程化项目中
谢谢您的阅读,希望对您有帮助,有问题欢迎随时指正交流!!!