news 2026/3/14 9:10:31

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/3/13 18:18:47

MinerU插件Dify集成终极指南:5步快速解决常见报错问题

MinerU插件Dify集成终极指南:5步快速解决常见报错问题 【免费下载链接】MinerU A high-quality tool for convert PDF to Markdown and JSON.一站式开源高质量数据提取工具,将PDF转换成Markdown和JSON格式。 项目地址: https://gitcode.com/OpenDataLa…

作者头像 李华
网站建设 2026/3/13 3:53:07

BootstrapBlazor导航组件终极指南:从入门到精通

BootstrapBlazor导航组件终极指南:从入门到精通 【免费下载链接】BootstrapBlazor 项目地址: https://gitcode.com/gh_mirrors/bo/BootstrapBlazor 在现代Web应用开发中,高效的导航系统是提升用户体验的关键要素。BootstrapBlazor作为基于Blazor…

作者头像 李华
网站建设 2026/3/3 13:56:47

PHP兼容性检查终极指南:如何轻松解决多版本PHP兼容性问题

PHP兼容性检查终极指南:如何轻松解决多版本PHP兼容性问题 【免费下载链接】PHPCompatibility PHPCompatibility/PHPCompatibility: PHPCompatibility是一个针对PHP代码进行兼容性检查的Composer库,主要用于PHP版本迁移时确保现有代码能够适应新版本的PHP…

作者头像 李华
网站建设 2026/3/13 17:36:50

当AI成为你的“学术搭子”:毕业季不再熬夜改论文,书匠策如何用智能工具悄悄改变科研写作范式?

又是一年毕业季,图书馆的灯亮到凌晨三点,咖啡杯堆成小山,Word文档里的红色批注比正文还多——你是不是也经历过那种“导师说再改一版就过了,结果改到第六版还是被退回”的崩溃时刻?在科研写作这条路上,我们…

作者头像 李华
网站建设 2026/3/10 23:44:43

3步解锁RouterOS完整功能:从入门到精通实战指南

3步解锁RouterOS完整功能:从入门到精通实战指南 【免费下载链接】MikroTikPatch 项目地址: https://gitcode.com/gh_mirrors/mikr/MikroTikPatch 还在为RouterOS的功能限制而烦恼吗?想要免费体验企业级网络功能却苦于授权问题?MikroT…

作者头像 李华
网站建设 2026/3/6 20:21:45

32、深入探索 Django:从日志查看器到数据库应用

深入探索 Django:从日志查看器到数据库应用 1. 网络应用概述 互联网上充斥着大量人们日常依赖的应用程序。网络应用之所以如此受欢迎,主要有以下几个原因: - 普遍可访问性 :部署后,任何有访问权限的用户只需通过浏览器访问相应 URL 即可使用,无需额外下载安装(除浏览…

作者头像 李华