当前位置: 首页 > article >正文

Node.js 全栈开发方向常见面试题

Node.js 全栈开发”方向的面试题**,这类岗位通常包括:

  • 后端:Node.js(Express/Nest)、数据库、REST API、安全、部署等

  • 前端:React/Vue(部分可能含 Next.js)、API 调用、状态管理等

  • 跨端协作:Token 鉴权、CORS、前后端联调逻辑、CI/CD 等


✅ Node.js 全栈开发常见面试题(中国公司通用)


🧩 1. Node.js 基础与核心机制

1.1 Node.js 的事件循环原理?如何处理异步操作?
1.2 process.nextTick()setImmediate()Promise 的执行顺序?
1.3 如何避免阻塞主线程?举例说明
1.4 Node.js 如何实现定时任务?和浏览器定时器有区别吗?
1.5 cluster 模块的原理及适用场景?如何实现负载均衡?


🚦 2. Express / Nest 后端开发

2.1 Express 的中间件机制?如何组织一个 RESTful API 项目?
2.2 如何处理接口异常?如何做统一异常拦截?
2.3 JWT 鉴权的完整流程?Token 存储在哪里最安全?
2.4 如何实现接口的权限控制?支持不同角色访问不同资源?
2.5 如何在 NestJS 中使用装饰器、模块、依赖注入机制?


🛢️ 3. 数据库(MySQL / MongoDB / Redis)

3.1 如何用 Node.js 连接 MySQL?你用过哪些 ORM?
3.2 Sequelize(或 TypeORM)如何实现一对多、多对多关系?
3.3 Redis 在全栈项目中常见用途有哪些?举例说明
3.4 如何实现缓存更新策略(如 Cache-Aside)?
3.5 如何处理事务?MySQL 事务是如何保证一致性的?


🌐 4. 前后端协作与接口设计

4.1 RESTful API 的设计规范有哪些?常见状态码有哪些?
4.2 CORS 原理?如何处理跨域问题?
4.3 前端如何处理 token 过期?服务端如何刷新 token?
4.4 如何设计一个登录注册流程?包括验证码、加密、Token
4.5 前后端接口联调过程中常见问题和解决方式?


🖼️ 5. 前端能力(React/Vue + API调用)

5.1 如何使用 React/Vue 发起后端请求?用什么库?
5.2 状态管理你用什么?Redux、Pinia、Zustand 等对比
5.3 如果一个接口很慢,你如何在 UI 上做友好的处理?
5.4 如何处理请求节流、防抖?封装方式?
5.5 如何将分页、筛选、排序的参数传给后端?


🔐 6. 安全与鉴权

6.1 如何防止 SQL 注入 / XSS / CSRF?
6.2 JWT 如何签发与验证?如何防止伪造?
6.3 登录接口如何防止暴力破解?加密算法用什么?
6.4 如何对文件上传做安全校验?
6.5 如何加密用户密码?用什么算法?


🚀 7. DevOps 与部署

7.1 如何部署 Node.js 项目到生产环境?用过哪些工具?
7.2 用过 PM2 吗?它和 cluster 模块有什么不同?
7.3 前后端部署在不同域名下时如何处理跨域?
7.4 如何实现持续集成?你知道哪些 CI 工具?
7.5 如何用 Docker 部署一个全栈项目?


💡 8. 实战场景题(建议重点准备)

8.1 请设计一个「用户登录 + JWT 鉴权 + 角色权限」系统
8.2 实现一个「博客系统」,包含:增删改查 + 评论 + 权限控制
8.3 实现「大文件分片上传 + 秒传 + 合并」的后端逻辑
8.4 写一个「接口限流」中间件,按 IP 限制频率
8.5 写一个「定时任务」系统,每天定时发日报邮件


9、性能优化(Node.js 高级)
9.1. Node.js 的性能瓶颈一般出在哪?如何排查?
9.2. 如何避免主线程阻塞?哪些操作容易阻塞线程?
9.3. 说说你对 Stream 的理解,什么时候用它来提升性能?
9.4. 如何用 cluster 或 worker_threads 实现多核并发?
9.5. 如何对接口进行性能监控和报警?用过什么工具?
9.6. 如何做数据库性能优化?举几个具体手段。
9.7. 静态资源 / CDN 如何优化访问性能?
9.8. 如何实现缓存机制?本地缓存 vs Redis 缓存?
9.9. 如何处理高并发下的“缓存击穿 / 雪崩 / 穿透”?
9.10. 前后端性能联调你做过哪些?前端也会影响响应时间吗?



10、微服务架构(Node.js + 多服务协作)
10.1. 单体架构和微服务的主要区别是什么?
10.2. 微服务之间如何通信?同步与异步方式分别是什么?
10.3. 如何做服务注册与发现?你用过哪些方案?
10.4. 如何处理分布式事务问题?常见解决方案有哪些?
10.5. 如何实现服务间的认证授权?使用了 JWT、API Key 还是其他方案?
10.6. 你怎么处理服务之间的依赖关系?如何避免耦合?
10.7. 如何做服务熔断、限流、降级?你用过哪些中间件?
10.8. 如何监控整个微服务系统的健康状态?用什么工具?
10.9. 微服务部署中你是如何组织目录结构和配置的?
10.10. NestJS 如何支持微服务?你用过它的 @Microservice() 装饰器吗?


11、消息队列(MQ)
11.1. 为什么要用消息队列?在哪些场景下最适合?
11.2. RabbitMQ / Kafka / Redis Stream 的区别与适用场景?
11.3. MQ 如何保证消息不丢?如何实现消息的重试机制?
11.4. 如何处理消息重复消费问题?幂等性的实现方法?
11.5. 如何做异步任务处理?Node.js 中有哪些队列库?
11.6. MQ 如何处理消息堆积问题?如何限速?
11.7. 什么是发布/订阅模型?和点对点模型的区别?
11.8. 如何实现延迟消息、定时消息发送?
11.9. 如何监控消息队列的健康状态和消费情况?
11.10. NestJS 如何使用 RabbitMQ / Kafka?使用过 @EventPattern() 吗?


12.高性能场景题
12.1.设计一个高并发点赞接口,如何优化性能?
12.2.设计一个订单系统,要用 MQ 做削峰填谷,你怎么设计?
12.3.如果一个接口每秒有 2 万请求,你怎么优化后端架构?
12.4.如何实现一个视频转码平台?如何让任务不阻塞主线程?
12.5.如何将一个单体博客系统拆分为微服务系统?拆哪些模块?


🧠 如果你是面初中级岗位:

  • 重点准备 1~5 类题目

  • 实战设计题准备 1~2 个项目能讲清楚架构和亮点


🧠 如果你面高级/架构方向:

  • 6~7 类 DevOps、安全、部署要熟

  • 强调高并发场景、缓存优化、微服务拆分、CI/CD 实战


✅ 你接下来想要:

  • 🔹 指定题目解析?(如“讲讲 2.4 JWT 权限控制”)

  • 🔹 完整答案包?(我可以逐题输出标准答案)

  • 🔹 文档或 PDF 格式?(适合打印背题)

  • 🔹 模拟面试题训练?(我出题你答,我评分和点评)

相关文章:

Node.js 全栈开发方向常见面试题

Node.js 全栈开发”方向的面试题**,这类岗位通常包括: 后端:Node.js(Express/Nest)、数据库、REST API、安全、部署等 前端:React/Vue(部分可能含 Next.js)、API 调用、状态管理等 …...

Spring如何实现组件扫描与@Component注解原理

Spring如何实现组件扫描与Component注解原理 注解配置与包扫描的实现机制一、概述:什么是注解配置与包扫描?二、处理流程概览三、注解定义ComponentScope 四、核心代码结构1. ClassPathScanningCandidateComponentProvider2. ClassPathBeanDefinitionSca…...

历年四川大学计算机保研上机真题

2025四川大学计算机保研上机真题 2024四川大学计算机保研上机真题 2023四川大学计算机保研上机真题 在线测评链接:https://pgcode.cn/school 分数求和 题目描述 有一分数序列: 2 / 1 2/1 2/1, 3 / 2 3/2 3/2, 5 / 3 5/3 5/3, 8 / 5 8/5 8/5, 13 /…...

gcc符号表生成机制

符号表生成机制 我们以C语言的编译链接过程为例,详细讲解符号表(Symbol Table)的流程,涵盖编译和链接两个阶段。理解符号表是理解链接器如何解决符号引用(如函数、变量)的关键。 符号表分为两种&#xff…...

达梦数据库 Windows 系统安装教程

🧑 博主简介:CSDN博客专家、CSDN平台优质创作者,高级开发工程师,数学专业,10年以上C/C, C#, Java等多种编程语言开发经验,拥有高级工程师证书;擅长C/C、C#等开发语言,熟悉Java常用开…...

unix/linux source 命令,其基本概念、定义、性质、定理

从计算机科学的角度,特别是形式语言、操作系统和编程语言设计的角度来看,source (或 .) 命令虽然看似简单,但其背后也蕴含着一些核心的概念、定义、性质和可以类比的“定理”(或者说,更准确地是“设计原则”或“行为模式”)。 让我们尝试从一个更理论和结构化的视角来剖…...

【Java EE初阶】计算机是如何⼯作的

计算机是如何⼯作的 计算机发展史冯诺依曼体系(Von Neumann Architecture)CPU指令(Instruction)CPU 是如何执行指令的(重点) 操作系统(Operating System)进程(process) 进程 PCB 中的…...

RAG理论基础总结

目录 概念 流程 文档收集和切割 读取文档 转换文档 写入文档 向量转换和存储 搜索请求构建 向量存储工作原理 向量数据库 文档过滤和检索 检索前 检索 检索后 查询增强和关联 QuestionAnswerAdvisor查询增强 高级RAG架构 自纠错 RAG(C-RAG&#xf…...

列表推导式(Python)

[表达式 for 变量 in 列表] 注意:in后面不仅可以放列表,还可以放range ()可迭代对象 [表达式 for 变量 in 列表 if 条件]...

嵌入式RTC工作原理及应用场景

20ppm 是衡量 RTC(实时时钟)精度的关键指标,表示 每百万秒(约11.57天)的最大时间误差范围。以下是通俗易懂的解释: 1. ppm 的含义 ppm Parts Per Million(百万分之一) 1 ppm 1/1,…...

一天搞懂深度学习--李宏毅教程笔记

目录 1. Introduction of Deep Learning1.1. Neural Network - A Set of Function1.2. Learning Target - Define the goodness of a function1.3. Learn! - Pick the best functionLocal minimaBackpropagation 2. Tips for Training Deep Neural Network3. Variant of Neural…...

Go语言常见接口设计技巧-《Go语言实战指南》

在 Go 中,接口是连接代码组件的桥梁。合理设计接口可以大幅提升程序的可维护性、可扩展性和测试友好性。本章将分享 Go 开发中常见的接口设计技巧与最佳实践。 一、接口设计原则 1. 面向接口编程,而非面向实现编程 尽量使用接口类型作为函数参数或返回值…...

python打卡训练营打卡记录day43

复习日 作业: kaggle找到一个图像数据集,用cnn网络进行训练并且用grad-cam做可视化 进阶:并拆分成多个文件 数据集来源:Flowers Recognition 选择该数据集原因: 中等规模:4242张图片 - 训练快速但足够展示效…...

Camera相机人脸识别系列专题分析之十一:人脸特征检测FFD算法之低功耗libvega_face.so人脸属性(年龄,性别,肤色,微笑,种族等)检测流程详解

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:Camera相机人脸识别系列专题分析之十:人脸特征检测FFD算法之低功耗libvega_face.so人脸识别检测流程详解 这一篇我们开始讲: Camera相机人脸识别系列专题分析之十一:人脸特征检测FFD算法之低功耗lib…...

解决:输入SSH后,仍无法通过网址登录以及紧接着的新问题Permission denied(publickey,password).

现象: 管理员: Windows PowerShell输入SSH后,仍无法通过网址登录 例如输入你的ssh命令:ssh -CNg -L xxxx:127.0.0.1:xxxx rootaaaaaaaaa.com -p yyyyy 得到终端提示:ssh无法识别为 cmdlet、函数、脚本文件或可运行程序的名称。 解…...

【QT控件】QWidget 常用核心属性介绍 -- 万字详解

目录 一、控件概述 二、QWidget 核心属性 2.1 核心属性概览 2.2 enabled ​编辑 2.3 geometry 2.4 windowTitle 2.5 windowIcon 使用qrc文件管理资源 2.6 windowOpacity 2.7 cursor 2.8 font ​编辑 2.9 toolTip 2.10 focusPolicy 2.11 styleSheet QT专栏&…...

uniapp-商城-77-shop(8.2-商品列表,地址信息添加,级联选择器picker)

地址信息,在我们支付订单上有这样一个接口,就是物流方式,一个自提,我们就显示商家地址。一个是外送,就是用户自己填写的地址。 这里先说说用户的地址添加。需要使用到的一些方式方法,主要有关于地址选择器,就是uni-data-picker级联选择。 该文介绍了电商应用中地址信息处…...

HTTPS加密通信详解及在Spring Boot中的实现

HTTPS(Hyper Text Transfer Protocol Secure)是HTTP的安全版本,通过SSL/TLS协议为通讯提供加密、身份验证和数据完整性保护。 一、HTTPS核心原理 1.加密流程概述 客户端发起HTTPS请求(连接到服务器443端口)服务器返…...

如何让 Git 停止跟踪文件?停止后又如何恢复跟踪?

在使用 Git 管理代码时,有时我们希望某些文件不再被 Git 跟踪(比如本地配置文件、临时文件等),但保留这些文件在本地;过了一段时间,可能又需要恢复跟踪这些文件。本文将用通俗易懂的语言,教你如…...

【第16届蓝桥杯 | 软件赛】CB组省赛第二场

个人主页:Guiat 归属专栏:算法竞赛 文章目录 A. 密密摆放(5分填空题)B. 脉冲强度之和(5分填空题)C. 25 之和D. 旗帜E. 数列差分F. 树上寻宝G. 翻转硬币H. 破解信息 正文 总共8道题。 A. 密密摆放&#xff0…...

SQL进阶之旅 Day 10:执行计划解读与优化

【SQL进阶之旅 Day 10】执行计划解读与优化 开篇 今天是我们的"SQL进阶之旅"系列的第10天,我们将深入探讨SQL执行计划的解读与优化技巧。随着数据库规模的增长和业务复杂度的提升,理解SQL语句在数据库引擎中的执行过程变得至关重要。 执行计…...

AR/MR实时光照阴影开发教程

一、效果演示 1、PICO4 Ultra MR 发光的球 2、AR实时光照 二、实现原理 PICO4 Ultra MR开发时,通过空间网格能力扫描周围环境,然后将扫描到的环境网格材质替换为一个透明材质并停止扫描;基于Google ARCore XR Plugin和ARFoundation进行安卓手…...

Visual studio 中.sln/.vcxproj/.vcxproj.filters和.vcxproj.user文件的作用

在 Visual Studio (尤其是 C 项目) 中,.sln、.vcxproj、.vcxproj.filters 和 .vcxproj.user 文件各自承担着不同的关键角色。理解它们的作用对于项目管理和协作至关重要。 核心原则: .vcxproj 和 .sln 是项目/解决方案的核心定义文件,必须纳…...

【汽车电子入门】一文了解LIN总线

前言:LIN(Local Interconnect Network)总线,也就是局域互联网的意思,它的出现晚于CAN总线,于20世纪90年代末被摩托罗拉、宝马、奥迪、戴姆勒、大众以及沃尔沃等多家公司联合开发,其目的是提供一…...

JVM学习(七)--JVM性能监控

目录 一、JVM性能监控 1、JVM监控及诊断工具-命令行篇 2、JVM监控及诊断工具-GUI篇 3、JVM运行时参数 一、JVM性能监控 1、JVM监控及诊断工具-命令行篇 面试题: 1、你使用过Java虚拟机性能监控和故障处理工具吗? 2、怎么打出线程栈信息。 3、怎么获取 Jav…...

关于 java:5. Java IO 与文件操作

一、File 类(读取文件属性) 1.1 java.io.File 类概述 File 是 Java IO 中的核心类,用于表示文件或目录的路径名。 它是一个抽象路径名,可以表示实际存在或不存在的文件/文件夹。 File 类提供了创建、删除、重命名、判断属性、获…...

【笔记】为 Python 项目安装图像处理与科学计算依赖(MINGW64 环境)

📝 为 Python 项目安装图像处理与科学计算依赖(MINGW64 环境) 🎯 安装目的说明 本次安装是为了在 MSYS2 的 MINGW64 工具链环境中,搭建一个完整的 Python 图像处理和科学计算开发环境。 主要目的是支持以下类型的 Pyth…...

【笔记】MLA矩阵吸收分析

文章目录 一、张量运算的计算量1. FLOPs定义2. 张量计算顺序对计算量的影响 二、MLA第一次矩阵吸收的计算量分析1. 原始注意力计算2. MLA源代码中的吸收方式3. 提前吸收4. 比较分析4.1 比较顺序1和顺序24.2 比较顺序2和顺序3 三、MLA第二次矩阵吸收的计算量分析1. 原始输出计算…...

600+纯CSS加载动画一键获取指南

CSS-Loaders.com 完整使用指南:600纯CSS加载动画库 🎯 什么是 CSS-Loaders.com? CSS-Loaders.com 是一个专门提供纯CSS加载动画的资源网站,拥有超过600个精美的单元素加载器。这个网站的最大特色是所有动画都只需要一个HTML元素…...

开源的JT1078转GB28181服务器

JT1078转GB28181流程 项目地址: JT1078转GB28181的流媒体服务器: https://github.com/lkmio/lkm JT1078转GB28181的信令服务器: https://github.com/lkmio/gb-cms 1. 创建GB28181 UA 调用接口: http://localhost:9000/api/v1/jt/device/add 请求体如下&#xf…...