Node.js 如何使用util';什么是承诺功能?
我想和MongoDB一起使用promisify。我最后尝试了代码,连接正常,但函数insertOne不正常。有人能帮我吗?最好解释一下为什么,以及使用“.db().collection()”时的上下文是什么,我应该如何使用如下代码使函数promisify:Node.js 如何使用util';什么是承诺功能?,node.js,mongodb,es6-promise,Node.js,Mongodb,Es6 Promise,我想和MongoDB一起使用promisify。我最后尝试了代码,连接正常,但函数insertOne不正常。有人能帮我吗?最好解释一下为什么,以及使用“.db().collection()”时的上下文是什么,我应该如何使用如下代码使函数promisify: a().b().c().d() 这是我的代码,比如贝娄 import "babel-polyfill" const mongoClient = require('mongodb').MongoClient const util = requ
a().b().c().d()
这是我的代码,比如贝娄
import "babel-polyfill"
const mongoClient = require('mongodb').MongoClient
const util = require('util')
const chalk = require('chalk')
const url = 'mongodb://localhost:27017'
const dbName = ''
const collName = ''
let connect = util.promisify(mongoClient.connect).bind(mongoClient)
let insertOne = util.promisify(mongoClient.insertOne)
.bind(mongoClient)
const main = async () => {
try {
await connect(url)
insertOne({a100: 1}).db(dbName).collection(collName)
} catch (err) {
console.log(chalk.red(err.toString()))
}
mongoClient.close()
}
main()
MongoDB驱动程序已经返回承诺(请参阅)。您不需要使用
util.promisify
。此外,在诸如insertOne
之类的查询中,您不会链接db
和collection
。相反
例如:
client = await mongoClient.connect(url)
client.db(dbName).collection(collName).insertOne({a100: 1})
(注意,如果您使用的是旧的mongodb节点驱动程序版本2.2,则会略有不同,因为connect返回一个db对象-)