bal*_*afi 7 mongodb node.js async-await
当我运行它时(使用带有 --harmony 的节点 v7.5.0):
var MongoClient = require('mongodb').MongoClient,
var url = "mongodb://localhost:27017/myDB";
var test = await MongoClient.connect(url);
module.exports = test;
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
var test = await MongoClient.connect(url);
^^^^^^^^^^^
SyntaxError: Unexpected identifier
Run Code Online (Sandbox Code Playgroud)
MongoClient.connect(url) 确实返回了一个承诺
我最终想要实现的是创建一个节点模块,该模块将连接到 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);
}
Run Code Online (Sandbox Code Playgroud)
有什么建议?
我是这样解决的,只打开一个连接:
数据库.js
const MongoClient = require('mongodb').MongoClient;
let db;
const loadDB = async () => {
if (db) {
return db;
}
try {
const client = await MongoClient.connect('mongodb://localhost:27017/dbname');
db = client.db('dbname');
} catch (err) {
Raven.captureException(err);
}
return db;
};
module.exports = loadDB;
Run Code Online (Sandbox Code Playgroud)
索引.js
const loadDB = require('./db');
const db = await loadDB();
await db.collection('some_collection').insertOne(...);
Run Code Online (Sandbox Code Playgroud)
小智 5
将它包装在异步函数中怎么样?
var MongoClient = require('mongodb').MongoClient,
var url = "mongodb://localhost:27017/myDB";
var test = async function () {
return await MongoClient.connect(url);
}
module.exports = test;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10611 次 |
| 最近记录: |