Node.js笔记入门篇

发布于:2025-02-12 ⋅ 阅读:(139) ⋅ 点赞:(0)

黑马程序员视频地址:

Node.js与Webpack-01.Node.js入门

基本认识

概念

定义:Node.js® 是一个免费、开源、跨平台的 JavaScript 运行时环境, 它让开发人员能够创建服务器 Web 应用、命令行工具和脚本 

作用:使用Node.js 编写服务器端程序

✓ 编写数据接口,提供网页资源浏览功能等等

✓ 前端工程化:为后续学习Vue 和React 等框架做铺垫


下载

官网:

Node.js — 在任何地方运行 JavaScript

v16.19.0(指定版本:兼容vue-admin-template 模板)

Node.js安装包-windows版本.zip - 蓝奏云

Node.js安装包-mac版.zip - 蓝奏云

安装过程:默认下一步即可
注释事项:
1. 安装在非中文路径下
2. 无需勾选自动安装其他配套软件
成功验证:
1. 打开cmd 终端,输入node -v命令查看版本号
2. 如果有显示,则代表安装成功


使用方法

命令:在VSCode 集成终端中,输入node xxx.js,回车即可执行


fs 模块

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

fs 模块:封装了与本机文件系统进行交互的,方法/属性

加载fs模块对象

模块使用前需加载

const fs = require("fs")

 写入文件内容

fs.writeFile("文件路径", "写入内容", error => {
    //写入后的回调函数
})

报错会传值给error,成功则error值为空 


 读取文件内容

fs.readFile("文件路径", (error, data) => {
    //读取后的回调函数
})

error同上,data为读取的内容,类型为Buffer数据流(直接打印会以16进制形式显示) 

 

 若想正常显示内容,需要调用toString方法


path 模块

__dirname 内置变量 

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

建议:在Node.js 代码中,使用绝对路径

//内置变量(获取当前模块目录-绝对路径)
__dirname


path.join() 拼接路径

path.join() 会使用特定于平台的分隔符,作为定界符,将所有给定的路径片段连接在一起

path.join(片段1, 片段2, ..., 片段n)


 path.resolve() 与path.resolve()的区别

特性 path.join path.resolve
返回路径类型 相对或绝对路径 始终为绝对路径
处理绝对路径参数 直接拼接 重置解析过程
依赖工作目录 不依赖 依赖(若无绝对路径参数)
主要用途 路径拼接与标准化 生成绝对路径

URL中的端口号


http 模块

加载http 模块,创建Web 服务对象

const http = require("http")
const server = http.createServer()

设置监听请求事件

设置监听事件(request),回调函数参数req为接收数据参数,res为响应参数 

req.url:获取请求资源路径 

server.on("request", (req, res) => {
  
})

设置响应头

"Content-Type":内容类型

"text/plain;charset=utf-8":普通文本以及中文编码格式

“text/html;charset=utf-8”:超文本以及中文编码格式

server.on("request", (req, res) => {

  res.setHeader("Content-Type", "text/plain;charset=utf-8")

})

结束本次请求与响应

server.on("request", (req, res) => {

  res.end("响应语句")

})

配置端口号并启动web服务

server.listen(3000, () => {
  console.log("web 服务启动成功")
})

本地测试:

浏览器请求http://localhost:3000 测试

(localhost:固定代表本机的域名)

启动成功后会持续监听,等待下一步操作,可以按CTRL+C退出 


案例:返回html超文本文件

const fs = require("fs")
const path = require("path")
const http = require("http")
const server = http.createServer()
server.on("request", (req, res) => {
  if(req.url === "/index.html")
  {
    fs.readFile(path.join(__dirname, "page/index.html"), (err, data) => {
      res.setHeader("Content-Type", "text/html;charset=utf-8")
      res.end(data.toString())
    })
  }
  else
  {
    res.setHeader("Content-Type", "text/plain;charset=utf-8")
    res.end("你要访问的路径不存在")    
  }
})
server.listen(3000, () => {
  console.log("web 服务启动成功")
})


模块化


CommonJS 标准

模块名或路径:

✓ 内置模块:直接写名字(例如:fs,path,http)

✓ 自定义模块:写模块文件路径(例如:./02.js) 

//01.js    导入

const obj = require(__dirname + "/02.js")
console.log(obj)
//02.js    导出

const userName = "User_A001" 
const userGender = "男"

module.exports = {
  name: userName,
  gender: userGender    //name和gender是对外属性名
}


ECMAScript 标准

 注意:

Node.js 默认支持CommonJS 标准语法

使用ECMAScript 标准语法:

在运行模块所在文件夹新建package.json 文件

并设置{ "type" : "module" } 

//package.json    配置文件

{"type": "module"}


默认导出和导入

//01.js    导入

import obj from "./02.js"
console.log(obj)
//02.js    导出

const userName = "User_A001" 
const userGender = "男"

export default {
  name: userName,
  gender: userGender
}


命名导出和导入

//01.js    导入

import {userName, userGender} from "./02.js"
console.log(userName, userGender)
//02.js    导出

export const userName = "User_A001" 
export const userGender = "男"


npm包管理器 

包的概念


npm简介


常用命令(使用时注意路径)

初始化清单文件(得到package.json 文件,有则略过此命令)

npm init -y

下载本地软件包

npm i 软件包名称

安装所有依赖(项目中不包含node_modules,下载package.json 中记录的所有软件包)

npm i

下载全局软件包(-g 代表安装到全局环境中)

npm i 软件包名 -g

删除软件包 

npm uni 软件包名

nodemon包

nodemon是全局软件包

作用:替代node 命令,检测代码更改,自动重启程序

#下载命令:
npm i nodemon -g
#运行命令:
nodemon 待执行的目标js 文件

网站公告

今日签到

点亮在社区的每一天
去签到