NestJS集成Mongoose遇mpromise弃用警告,如何选择替代Promise库?
解决Mongoose mpromise弃用警告的实用方案
Hey,我之前也碰到过这个烦人的警告,给你整理下靠谱的解决办法,还有不同场景下的选择建议:
首先先明确你看到的警告内容:
(node:15304) DeprecationWarning: Mongoose: mpromise (mongoose's default promise library) is deprecated, plug in your own promise library instead: http://mongoosejs.com/docs/promises.html
两种常规修复方式
使用ES6原生Promise:不需要额外安装任何依赖,直接在Mongoose初始化的地方加一行代码就行:
mongoose.Promise = global.Promise;这种方式简单轻量,适合大多数普通项目。
使用Bluebird库:如果你的项目对Promise性能有较高要求,Bluebird是个不错的选择——有测试数据显示它比ES6原生Promise快4倍左右。步骤也很简单:
- 先安装依赖:
npm install bluebird --save - 然后配置Mongoose:
mongoose.Promise = require('bluebird');
- 先安装依赖:
Nest框架下的注意事项
在Nest框架里,因为框架本身已经对异步逻辑和Promise有了完善的集成,更推荐使用框架自带的Promise处理机制或者上面提到的ES6原生Promise。如果你坚持要用Bluebird,也可以按照上面的方式配置,但记得在测试环境先验证下和Nest的依赖注入、异步流程是否兼容,一般不会有大问题,但谨慎点总没错~
内容的提问来源于stack exchange,提问作者Jeremy Thille
相关产品推荐
相关产品推荐

