我如何使用MongoClient的asynchronous等待

当我运行这个(使用节点v7.5.0与 – 和谐):

var MongoClient = require('mongodb').MongoClient, var url = "mongodb://localhost:27017/myDB"; var test = await MongoClient.connect(url); module.exports = test; 

我得到这个错误:

 var test = await MongoClient.connect(url); ^^^^^^^^^^^ SyntaxError: Unexpected identifier 

MongoClient.connect(url)确实返回一个promise

我最终想要实现的是创build一个连接到mondoDB的节点模块,并且可以使用,如下例所示:

  var db = require('../utils/db'); //<-- this is what I want to create above col = db.collection('myCollection'); module.exports.create = async fuction(data) { return await col.insertOne(data); } 

有什么build议么?

你的模块封装是否也是asynchronous函数? 您需要将await关键字设置为asynchronousfunction。

把它包装在一个asynchronous函数呢?

 var MongoClient = require('mongodb').MongoClient, var url = "mongodb://localhost:27017/myDB"; var test = async function () { return await MongoClient.connect(url); } module.exports = test;