Mongoose Schema Connection.prototype.asPromise()函数

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

项目结构:

项目的结构将如下:

Mongoose Schema Connection.prototype.asPromise()函数

示例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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程