在 Nest 服务中如何划分控制器、服务与依赖注入边界,装饰器元数据有哪些限制
简答题困难734 次浏览
参考答案与解析
核心结论
在 Nest 服务中,控制器应处理传输层问题,例如路由、参数提取、状态码和输入校验;服务应承载可复用的业务用例;数据库、消息系统和第三方接口则通过明确的端口或适配器隔离。依赖注入的价值不是减少构造函数参数,而是让对象创建、生命周期和依赖替换由容器统一管理,使核心业务不直接绑定具体基础设施。装饰器和反射元数据可以辅助容器识别依赖,但不能完整表达所有 TypeScript 类型信息,更不能替代清晰的运行时令牌设计。
底层机制与决策依据
容器通常依据模块中登记的提供者构建依赖图,再根据作用域创建实例。默认单例适合无请求状态的服务;请求作用域会为每次请求创建对象,能够携带请求上下文,但会增加实例化和依赖传播成本;瞬时
