- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
在 Mac 终端中运行 node file.js 时收到此错误消息。我的终端没有任何特殊配置。我尝试在“mongoose.connect...”之前添加“mongoose.Promise = global.Promise”。
DeprecationWarning: Mongoose: mpromise (mongoose's default promise library) is deprecated, plug in your own promise library instead: http://mongoosejs.com/docs/promises.html
这是源代码:
var Product = require('../models/product');
var mongoose = require('mongoose');
mongoose.Promise = global.Promise;
mongoose.connect('localhost:27017/shopping');
var products = [
new Product({
imagePath: 'https://upload.wikimedia.org/wikipedia/en/5/5e/Gothiccover.png',
title: 'Gothic 5 Video Game',
description: 'Awesome Game!!!!',
price: 10
}),
new Product({
imagePath: 'https://upload.wikimedia.org/wikipedia/en/5/5e/Gothiccover.png',
title: 'Gothic 4 Video Game',
description: 'Also Awesome Game!!!!',
price: 20
}),
new Product({
imagePath: 'https://upload.wikimedia.org/wikipedia/en/5/5e/Gothiccover.png',
title: 'Gothic 3 Video Game',
description: 'best game ever!!!!',
price: 15
}),
new Product({
imagePath: 'https://upload.wikimedia.org/wikipedia/en/5/5e/Gothiccover.png',
title: 'Gothic 2 Video Game',
description: 'top notch!!!',
price: 50
})
];
var done = 0;
for (var i = 0; i < products.length; i++) {
products[i].save(function(err, result){
done++;
if (done === products.length) {
exit();
}
});
}
function exit() {
mongoose.disconnect();
}
最佳答案
该错误表明 Mongoose 的默认 Promise 库已被弃用,请插入您自己的 Promise 库。
默认情况下,当您使用 Mongoose 时,它会插入一个默认的 Promise 库。它使用 Mongoose 附带的 mpromise
。
因此,它有一个 Promise 库的默认实现,但是,无论出于何种原因,他们不希望您再使用它。
相反,您有多种选择来使用自己的 Promise 库。 Node.js 社区中最受欢迎的是 Bluebird、Q 或 ES6 Promises。
我建议您使用 ES6 Promises,因为它绝对可以满足您从 Mongoose 中获得 Promise 所需的一切。
如果这看起来有点武断,比如为什么 Mongoose 不帮我们解决这个问题。 Mongoose 这样做是为了让我们更灵活地选择要使用的 Promise 实现,这对于某些用户来说非常重要。对于某些项目,这是您需要关心的事情,但是,当您第一次开始使用它时,您实际上并不太担心它。
因此,您所要做的就是修复 Mongoose 的内部 Promise 库:
在文件的最顶部有以下内容:
const mongoose = require('mongoose');
在它下面你要写:
mongoose.Promise = global.Promise;
因此,在左侧,我们说嘿 Mongoose
,每当您想要为与数据库进行任何类型的交互创建 Promise 时,我们希望您使用 Promise 库的此实现。
global.Promise
是对 Node.js 环境中 Promise 的 ES6 实现的引用。
因此,我们用这段代码表示,每当您需要实现 Promise 时,只需使用 ES6 实现即可。
关于javascript - "Mongoose mpromise is deprecated",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42382164/
在 Mac 终端中运行 node file.js 时收到此错误消息。我的终端没有任何特殊配置。我尝试在“mongoose.connect...”之前添加“mongoose.Promise = glob
我正在尝试使用 promise 来避免深层嵌套回调。我有以下代码: exports.destroy = function(req, res) { var actionID = req.body.i
我正在尝试将回调 hell 重构为 Promise。如何将 Promise 与 findById.exec() 一起使用,然后与 object.save() 一起使用? exports.changeA
我正在尝试使用我的自定义方法在 mongoose 上开发一个类,所以我用我自己的类扩展了 mongoose,但是当我调用创建一个新的 car 方法时它可以工作,但是它的 strip 和错误,在这里我让
在我的 Node 应用程序中使用 mongoose 时出现以下错误。 Mongoose: mpromise (mongoose's default promise library) is deprec
这个问题在这里已经有了答案: (node:3341) DeprecationWarning: Mongoose: mpromise (8 个回答) 关闭5年前。 一段时间以来,我一直收到此错误,我决定
我收到此警告:DeprecationWarning:Mongoose:mpromise(mongoose 的默认 promise 库)已弃用,请插入您自己的 promise 库。当我尝试在后端路由上的
我正在使用 MEAN 堆栈,每次保存用户时我都会收到此警告 (node:2157) DeprecationWarning: Mongoose: mpromise(mongoose 的默认 promis
我是一名优秀的程序员,十分优秀!