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 协议发布