【问题标题】:nodejs - mpromise (mongoose's default promise library) is deprecatednodejs - 不推荐使用 mpromise(猫鼬的默认承诺库)
【发布时间】:2017-07-05 06:55:36
【问题描述】:

我研究了很多页面,我也收到了几乎建议是添加 mongoose.Promise = global.Promise;连接前。 这是我的代码:

var mongo = require('mongodb');
var mongoose = require('mongoose');
mongoose.Promise = global.Promise;
mongoose.connect('mongodb://localhost:27017/mean', function(err, res) {
    if (err) {
        console.log(err);
    }
    else {
        console.log('Connected to DB');
    }
});

第一次程序运行正常。数据被添加到数据库中。但是,在第二次,我仍然得到错误:

DeprecationWarning: Mongoose: mpromise (mongoose's default promise library) is deprecated, plug in your own promise library instead: http://mongoosejs.com/docs/promises.html

有人帮我解决这个问题吗?

【问题讨论】:

  • 这可能与这个Github issue有关。我在使用 Mongoose 4.8.x 时也发生了同样的事情。使用4.7.9时不会出现错误。
  • 你为什么加载var mongo = require('mongodb');当你使用mongoose
  • 感谢随机用户!我删除了它。

标签: express mongoose


【解决方案1】:

这是一个警告,表示 Mongoose 的默认承诺库已被弃用。

您应该改用第三方承诺库,例如蓝鸟或 Q。

这是一个使用 Bluebird Promise 和 Promisifying Mongoose 的示例:

import mongoose from "mongoose";
import Promise from "bluebird";

// promisify mongoose
Promise.promisifyAll(mongoose);

现在,您可以使用 Mongoose 作为 Promise,它不会给您不推荐使用的警告。

【讨论】:

  • 他已经用节点一替换了原生的猫鼬库。
猜你喜欢
  • 2017-07-28
  • 2017-02-28
  • 2017-01-12
  • 2017-05-12
  • 2017-09-01
  • 2015-05-12
  • 2018-02-15
  • 1970-01-01
  • 2014-03-27
相关资源
最近更新 更多