使用Node.js和MongoDB正确处理Promise的方法如下:
const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017/mydb';
function findDocuments() {
return new Promise((resolve, reject) => {
MongoClient.connect(url, (err, db) => {
if (err) reject(err);
const collection = db.collection('documents');
collection.find({}).toArray((err, docs) => {
if (err) reject(err);
resolve(docs);
db.close();
});
});
});
}
findDocuments()
.then(docs => {
console.log(docs);
})
.catch(err => {
console.error(err);
});
在上面的例子中,我们使用MongoDB的find()方法查询数据库,通过Promise来处理查询结果。如果查询成功,Promise将会被resolve,并将查询结果传递给.then()方法;如果查询失败,Promise将会被reject,并将错误信息传递给.catch()方法。
const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017/mydb';
function insertDocument(document) {
return new Promise((resolve, reject) => {
MongoClient.connect(url, (err, db) => {
if (err) reject(err);
const collection = db.collection('documents');
collection.insertOne(document, (err, result) => {
if (err) reject(err);
resolve(result);
db.close();
});
});
});
}
insertDocument({ name: 'John', age: 25 })
.then(result => {
console.log('Document inserted');
})
.catch(err => {
console.error(err);
});
在上面的例子中,我们使用MongoDB的insertOne()方法插入数据,通过Promise来处理插入操作。如果插入成功,Promise将会被resolve,并输出插入成功的消息;如果插入失败,Promise将会被reject,并将错误信息传递给.catch()方法。
通过以上的方法,你可以在Node.js中使用MongoDB正确处理Promise,从而实现更加优雅和可读的异步操作。在实际应用中,你可以根据具体需求和场景,灵活运用Promise来处理各种异步操作。关于更详细的MongoDB操作和Promise的用法,请参考MongoDB官方文档和Promise的相关教程。
领取专属 10元无门槛券
手把手带您无忧上云