nodejs使用mongoose,用promise对查询语句进行二次封装
时间: 2024-01-24 08:17:28 浏览: 129
NodeJS中利用Promise来封装异步函数
好的,下面是一个使用promise对mongoose查询语句进行二次封装的例子:
```javascript
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test', {useNewUrlParser: true});
// 定义user模型
const UserSchema = new mongoose.Schema({
name: String,
age: Number
});
const User = mongoose.model('User', UserSchema);
// 封装查询方法
const findUser = (params) => {
return new Promise((resolve, reject) => {
User.find(params, (err, users) => {
if (err) {
reject(err);
} else {
resolve(users);
}
});
});
}
// 使用查询方法
findUser({age: 18}).then((users) => {
console.log(users);
}).catch((err) => {
console.error(err);
});
```
以上代码中,我们定义了一个`User`模型,并封装了一个`findUser`方法,该方法接收一个参数`params`,用于指定查询条件,返回一个promise对象,当查询成功时,resolve返回结果;当查询失败时,reject返回错误信息。最后,我们通过调用`findUser`方法,传入查询条件,使用promise的then/catch方法处理返回结果或错误信息。
阅读全文