后端2026-04-15
后端面试题:Node.js 与 Express
总结 Node.js 运行机制、Express 框架、异步编程与错误处理的常见面试题。
后端面试题:Node.js 与 Express
1. Node.js 的单线程模型如何处理并发?
- Node.js 通过事件循环(Event Loop)调度任务。
- I/O 操作异步执行,避免阻塞主线程。
- 适合高并发 I/O 密集型场景。
2. process.nextTick 和 setImmediate 有何区别?
process.nextTick在当前阶段末尾优先执行。setImmediate在下一次事件循环迭代执行。- 两者调度顺序不同,影响微任务调度行为。
3. Express 中间件有哪些类型?
- 应用级中间件。
- 路由级中间件。
- 错误处理中间件。
- 第三方中间件。
4. 如何处理 Express 中的异常?
- 通过
next(err)交给错误处理中间件。 - 对异步函数使用
try/catch或封装错误处理。
5. 如何避免阻塞 Node.js 事件循环?
- 避免 CPU 密集型操作。
- 将大文件处理、复杂计算交给 Worker Threads。
- 使用流(Streams)处理大数据。
6. Node.js 模块系统有哪几种?
- CommonJS:
require与module.exports。 - ES Module:
import/export。 - CommonJS 在运行时加载,ESM 使用静态分析。
7. 如何在 Express 中实现安全防护?
- 使用
helmet设置安全头。 - 验证输入参数,避免注入攻击。
- 使用
cors控制跨域访问。
8. 你会如何设计一个可扩展的 REST API?
- 使用分层架构:路由、控制器、服务、数据层。
- 避免逻辑耦合到路由处理函数中。
- 添加统一异常处理和日志。
后端Node.jsExpress