Mongoose Schema Connection.prototype.asPromise()函数
Mongoose Schema API的 Connection.prototype.asPromise() 方法是用在Connection对象上的。如果成功连接到MongoDB,它允许我们将结果作为一个promise获取,也就是说promise是已解决的,否则promise被拒绝。让我们通过一个示例来理解 asPromise() 方法。
语法:
connection.asPromise();
参数: 此方法不接受任何参数。
返回值: 此方法返回一个可以通过 then 和 catch 块处理的 Promise,或者通过异步函数处理。
设置 Node.js Mongoose 模块:
步骤1: 使用以下命令创建一个 Node.js 应用程序:
npm init
步骤2: 创建NodeJS应用程序后,使用以下命令安装所需的模块:
npm install mongoose
项目结构:
项目的结构将如下:
示例1:
下面的示例展示了Mongoose Connection的基本功能asPromise()方法的使用,使用then和catch块。在这个示例中,我们展示了由asPromise()方法解析的所有属性,并访问结果对象上的数据库名称。
文件名:app.js
// Require mongoose module
const mongoose = require("mongoose");
// Set Up the Database connection
const URI = "mongodb://localhost:27017/geeksforgeeks"
const connectionObject = mongoose.createConnection(URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
}).asPromise();
connectionObject.then(result => {
console.log(Object.keys(result));
console.log(result.name)
}).catch(err => console.log(err))
运行程序的步骤: 从项目的根目录中执行以下命令来运行应用程序:
node app.js
输出:
[
'base', 'collections',
'models', 'config',
'replica', 'options',
'otherDbs', 'relatedDbs',
'states', '_readyState',
'_closeCalled', '_hasOpened',
'plugins', 'id',
'_queue', '_listening',
'_connectionString', '_connectionOptions',
'client', '$initialConnection',
'db', 'host',
'port', 'name'
]
geeksforgeeks
示例2: 下面的示例展示了Mongoose连接的基本功能asPromise() 方法。在这个示例中,我们使用异步函数处理promise。
文件名:app.js
// Require mongoose module
const mongoose = require("mongoose");
// Set Up the Database connection
const URI = "mongodb://localhost:27017/geeksforgeeks"
const asPromiseExample2 = async () => {
const connectionObject =
await mongoose.createConnection(URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
}).asPromise();
console.log(Object.keys(connectionObject));
console.log(connectionObject.port)
}
asPromiseExample2();
运行程序的步骤: 要运行该应用程序,请从项目的根目录执行以下命令:
node app.js
输出:
[
'base', 'collections',
'models', 'config',
'replica', 'options',
'otherDbs', 'relatedDbs',
'states', '_readyState',
'_closeCalled', '_hasOpened',
'plugins', 'id',
'_queue', '_listening',
'_connectionString', '_connectionOptions',
'client', '$initialConnection',
'db', 'host',
'port', 'name'
]
27017
参考: https://mongoosejs.com/docs/api/connection.html#connection_Connection-asPromise