MongoDB有没有Promise风格的驱动程序?
发布于 4 年前 作者 zhanzhenzhen 6612 次浏览 来自 问答

回调好麻烦,嵌套好丑。

26 回复

官网的co不行么?还是没发现?

@maicss 没注意到,谢谢。不过我还是不想用co,希望能够原生提供Promise就好了。

@zhanzhenzhen mongoose就有啊mpromise支持啊,也可以自己替换的

mongoose就支持的呀 From Noder

@zhanzhenzhen 看下Mongolass,跟官方一样的api,跟Mongoose相似的用法

mpromise没reject,尴尬

https://mongodb.github.io/node-mongodb-native/ 官方驱动不就是,难道我用了假的官方驱动?

const mongoose = require(‘mongoose’); mongoose.Promise = global.Promise;

@zxj963577494 只要你nodejs版本给力,都不用bluebird了

原生驱动不就是支持吗

原生驱动不就是支持promise??

await User.findOne().toArray()

好吧,看来还是mongoose比较好。 @AnzerWall 原生驱动不支持promise的吧,mongoose好像不是原生驱动。

@zhanzhenzhen 你的原生驱动指的是node-mongodb-native??? http://mongodb.github.io/node-mongodb-native/2.2/api/MongoClient.html 看connect返回什么?

其实,我们很多时候还是需要callback的,callback 也可以写的很好看。。。反而觉得promise 有时候破坏了逻辑关系。 我很不喜欢直接就给promise的方式,灵活度不够了,如果需要,自己包一下就是了,又不是什么事情。

为啥不一句话,bluebird,promisifyAll?

我在知乎看见过你,wn那个?

来自酷炫的 CNodeMD

@splub 是的,不过我是开玩笑的啦

@AnzerWall 谢谢!我居然没注意,一直认为MongoDB原生驱动不支持Promise,原来它是如果没有callback就返回Promise,这个构思有点奇特。

@zhanzhenzhen 这??? 你再去看一眼mongoose的api,他也是这样的。。。 你这文档看得太马虎了吧

@nswbmw Mongolass 支持 nedb 或者 lokijs 这种类 mongo 的内存数据库吗?

@andyhu 不支持,你可以 fork 改改

@nswbmw 好像也有坑,camojs目前支持mongodb和nedb,不过维护不是很积极

@nswbmw 您好,请问使用mongolass.model(‘User’, {…}).findOne({…}).addCreatedAt().exec()返回的是一个promise对象吗?

@jaychenjun 是的…readme 里很清楚吧

回到顶部