news 2026/1/29 9:41:19

1.基础环境搭建与核心认知

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
1.基础环境搭建与核心认知

核心目标

掌握 Node.js 基础、Express 初始化,搭建起开发环境。

Node.js 前置基础

CommonJS vs ESModule 核心区别

CommonJS (require/module.exports)

ESModule (import/export)

为 Node.js 服务(服务器端,同步加载)

为浏览器 / 全端设计(异步加载,兼顾性能)

运行时加载(执行到require才加载模块)

编译时静态分析(import 必须在顶层,提前确定依赖)

导出:module.exports = {a:1}exports.a = 1;导入:const mod = require('./mod.js')

导出:export const a = 1/export default {a:1};导入:import {a} from './mod.js'/import mod from './mod.js'

导出的是值的拷贝(修改导入的值不影响原模块)

导出的是值的引用(原模块值变化,导入值同步变化)

可省略后缀(如require('./mod')),支持.node/.json 等

必须写完整后缀(如import './mod.js'),仅支持.js/.mjs 等

顶层 this指向模块自身(module.exports)

顶层 this指向undefined

http(核心网络模块)和path(路径处理模块)

http 模块:原生创建 HTTP 服务(对应前端 fetch)

http模块是 Node.js 实现 “请求 - 响应” 模型的核心,用于创建 HTTP 服务器 / 客户端,对应前端通过fetch/XMLHttpRequest发起请求的逻辑(前端是 “请求方”,Node.js 是 “响应方”)。

1. 核心作用
  • 搭建极简 HTTP 服务器,处理客户端(浏览器 / Postman / 前端 fetch)的请求;
  • 模拟客户端发起 HTTP 请求(类似前端 fetch)。
2. 核心概念(请求 - 响应模型)

概念

说明(对应前端)

Request(请求)

客户端发给服务器的信息(如 URL、请求方法、参数),对应前端 fetch 的request

配置;

Response(响应)

服务器返回给客户端的信息(如状态码、响应头、数据),对应前端 fetch 拿到的response

监听端口

服务器绑定端口(如 3000),前端通过http://localhost:3000

访问;

3. 实操案例:创建最简 HTTP 服务器
// 导入 http 模块 const http = require('http'); // 1. 创建服务器:回调函数处理 「请求(req) - 响应(res)」 const server = http.createServer((req, res) => { // ① 处理请求:获取请求方法、URL console.log('请求方法:', req.method); // GET/POST 等 console.log('请求 URL:', req.url); // 如 /api/user // ② 设置响应头(告诉客户端返回的是 JSON 数据,编码 utf-8) res.writeHead(200, { 'Content-Type': 'application/json; charset=utf-8', 'Access-Control-Allow-Origin': '*' // 解决前端跨域 }); // ③ 返回响应数据(对应前端 fetch 拿到的 res.json()) const responseData = { code: 200, msg: '请求成功', data: { name: 'Node.js http 模块' } }; res.end(JSON.stringify(responseData)); // 结束响应并返回数据 }); // 2. 启动服务器,监听 3000 端口 server.listen(3000, () => { console.log('服务器运行在 http://localhost:3000'); });
  • res.end():必须调用,用于结束响应(否则客户端会一直等待)
  • 跨域处理:服务器需设置Access-Control-Allow-Origin响应头(类似前端配置代理);
  • 对比 Express:Express 是基于http模块的封装,简化了路由、中间件等逻辑。
path 模块:路径处理(解决跨系统兼容)

方法

作用

path.join()

拼接路径(自动适配系统分隔符),最常用;

path.resolve()

解析为绝对路径(从当前工作目录出发);

path.basename()

获取路径中的文件名(含后缀);

path.extname()

获取路径中的文件后缀(如 .js、.json);

path.dirname()

获取路径中的目录名(去掉文件名的部分)

Express 项目搭建

快速脚手架

前置:安装 Node.js(建议 14+ 版本)

步骤 1:全局安装脚手架

打开终端,执行以下命令(仅需安装一次):

npm install -g express-generator

步骤 2:创建 Express 项目
# 创建项目(项目名自定义,如 my-express-app) express my-express-app
步骤 3:进入项目并安装依赖
# 进入项目目录 cd my-express-app # 安装依赖(express 等核心包) npm install
步骤 4:启动项目
# 方式 1:默认启动(Node 直接运行 bin/www) npm start # 方式 2:热重载启动(修改代码无需重启,需先装 nodemon) # 1. 安装 nodemon(开发依赖) npm install nodemon --save-dev # 2. 修改 package.json 的 scripts(新增 dev 命令) "scripts": { "start": "node ./bin/www", "dev": "nodemon ./bin/www" // 新增这行 } # 3. 启动热重载服务 npm run dev
步骤 5:验证项目

打开浏览器访问http://localhost:3000,能看到 Express 默认欢迎页面,说明创建成功。

脚手架生成的核心目录结构(关键)
my-express-app/ ├── bin/ // 启动脚本(www 是入口,监听端口) ├── public/ // 静态文件目录(放 css、js、图片等) ├── routes/ // 路由目录(处理接口/页面路由,如 index.js、users.js) ├── views/ // 视图模板目录(ejs/jade 等,前端页面) ├── app.js // Express 核心配置(中间件、路由挂载) ├── package.json // 依赖和脚本配置

Express 目录

作用(类比 Vue)

app.js

项目入口(类比 main.js)

routes/

路由文件(类比 Vue 的 router)

public/

静态资源(类比 Vue 的 public)

package.json

依赖配置(和 Vue 一致)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/28 2:09:33

3.MySQL 数据库集成

核心目标掌握 Node.js 连接 MySQL、基本 CRUD 操作,结合 Express 编写数据库接口。MySQL 基础与环境准备MySQL 入门MySQL 是什么?是能按规则存数据、快速查数据、改数据,还能防止数据丢 / 乱.关系型:数据之间可建立关联。核心优势…

作者头像 李华
网站建设 2026/1/28 0:56:51

Ursa.Avalonia中文显示问题的3种高效解决方案

Ursa.Avalonia中文显示问题的3种高效解决方案 【免费下载链接】Ursa.Avalonia Ursa是一个用于开发Avalonia程序的控件库 项目地址: https://gitcode.com/IRIHI_Technology/Ursa.Avalonia 在跨平台应用开发中,Ursa.Avalonia作为优秀的UI组件库,为开…

作者头像 李华
网站建设 2026/1/29 9:05:17

22、SNMP与跨平台Unix编程的技术探索

SNMP与跨平台Unix编程的技术探索 SNMP查询与工具创建 在网络管理中,SNMP(简单网络管理协议)是一项非常重要的技术。通过SNMP,我们可以对网络设备进行查询和管理。例如,执行SNMP查询时,对IP地址为 10.0.1.20 的设备查询 sysDescr 信息: Running snmp query for: …

作者头像 李华
网站建设 2026/1/28 2:43:43

ComfyUI-SeedVR2视频超分辨率终极避坑指南

ComfyUI-SeedVR2视频超分辨率终极避坑指南 【免费下载链接】ComfyUI-SeedVR2_VideoUpscaler Non-Official SeedVR2 Vudeo Upscaler for ComfyUI 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-SeedVR2_VideoUpscaler 在部署ComfyUI-SeedVR2视频超分辨率项目时&a…

作者头像 李华
网站建设 2026/1/28 23:07:58

31、Python GUI编程:从基础到应用

Python GUI编程:从基础到应用 在Python编程中,不仅可以处理各种后台任务,还能创建出功能丰富的图形用户界面(GUI)应用程序。本文将为你详细介绍Python中GUI编程的相关知识,包括基本理论、使用不同工具包创建简单应用以及构建实用的Apache日志查看器。 1. Python进程处理…

作者头像 李华
网站建设 2026/1/29 0:05:41

ASP.NET Core OpenAPI文档生成终极指南:Swashbuckle.AspNetCore实战

ASP.NET Core OpenAPI文档生成终极指南:Swashbuckle.AspNetCore实战 【免费下载链接】Step1X-Edit-v1p2-preview 项目地址: https://ai.gitcode.com/StepFun/Step1X-Edit-v1p2-preview 在现代Web开发中,API文档的重要性不言而喻。Swashbuckle.As…

作者头像 李华