Skip to content

E10 Node.js / BFF 服务端 — 面试题 ​

目标:模拟真实面试场景,考察候选人的 Node.js 基础、BFF 设计、服务端架构思维和实战经验。按难度分为基础、进阶、高级三个层级。


一、基础题 ​

1. Node.js 的事件循环和浏览器有什么区别?基础
2. 什么是 BFF?它解决了什么问题?基础
3. 生产环境为什么不建议前端直接调用后端通用服务?基础
4. SSR、SSG、ISR 应该怎么选择?基础

二、进阶题 ​

5. 如何处理 Node.js 服务中的未捕获异常?进阶
6. Serverless 的冷启动问题如何解决?进阶
7. 如何设计一个支持高并发的 BFF 服务?进阶
8. 如何设计一个前后端共享类型的 Monorepo 方案?进阶

三、高级题 ​

9. 如何设计一个 Node.js 微服务或 BFF 的日志与链路追踪方案?深入
10. Node.js 服务如何做性能调优?深入
11. 如何保障 Node.js/BFF 服务的安全性?深入
12. 描述一次你主导的 BFF 改造或 Node.js 服务优化经历。深入

参考答案(模板,需结合自身经历):

背景:某电商详情页前端需要调用商品、库存、价格、推荐等多个服务,页面加载慢且接口耦合严重。

问题:

  • 前端 5 次串行请求,首屏时间超过 3 秒。
  • 各端(App、H5、小程序)重复开发接口适配逻辑。
  • 下游服务抖动导致页面白屏。

解决方案:

  • 搭建 BFF 层,统一聚合详情页所需数据,前端只需 1 次请求。
  • 使用 Promise.all 并行调用下游服务,关键路径加超时和熔断。
  • 引入 Redis 缓存热点商品数据,缓存命中率 90%。
  • 针对不同端返回裁剪后的字段。

效果:

  • 首屏时间从 3.2s 降到 1.1s。
  • 前端代码量减少 40%。
  • 下游服务故障时通过缓存兜底,可用性提升。

评分维度:

  • 有真实项目背景(25%)
  • 问题分析清晰(25%)
  • 解决方案可落地(30%)
  • 有效果数据(20%)

13. Deno 和 Bun 与 Node.js 相比各有什么优缺点?什么场景下会选择它们?深入
14. 谈谈 NestJS 的 Guard、Interceptor、Pipe 分别解决什么问题?深入
15. tRPC 和 gRPC 各适用于什么场景?在 BFF 中如何选择?深入
16. 在 BFF 中使用消息队列有哪些典型场景?如何保证消息不丢失?深入
17. 如何为 Node.js BFF 服务设计可观测性方案?深入

面试准备建议 ​

  1. 深入理解 Node.js 事件循环、Stream、Buffer、Cluster 等核心机制。
  2. 能手写 BFF 聚合接口,说明超时、重试、缓存、熔断设计。
  3. 理解 SSR/SSG/ISR 差异,能结合业务选型。
  4. 准备至少一个 Node.js/BFF 项目的性能优化或架构改造案例。
  5. 了解 Serverless、容器化、可观测性等现代后端工程实践。
  6. 关注 Deno/Bun、NestJS、tRPC/gRPC、消息队列、APM 等前沿方向,能在面试中展现技术广度。

领域编号:E10 Node.js / BFF 服务端
最后更新:2026-06-24

基于 MIT 协议发布