Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 节点中的MongoDB客户端_Javascript_Node.js_Database_Mongodb - Fatal编程技术网

Javascript 节点中的MongoDB客户端

Javascript 节点中的MongoDB客户端,javascript,node.js,database,mongodb,Javascript,Node.js,Database,Mongodb,我正在尝试连接node.js中的mongodb,并将指向客户端的链接带到外部变量 我需要创建一个模块,该模块将返回.find()方法的结果。我该怎么做 const MongoClient = require('mongodb').MongoClient let client mongoClient = new MongoClient('mongodb://localhost:27017/', {useUnifiedTopology: true, useNewUrlParser: true})

我正在尝试连接node.js中的mongodb,并将指向客户端的链接带到外部变量

我需要创建一个模块,该模块将返回.find()方法的结果。我该怎么做

const MongoClient = require('mongodb').MongoClient

let client
mongoClient = new MongoClient('mongodb://localhost:27017/', {useUnifiedTopology: true, useNewUrlParser: true})
mongoClient.connect((err, db) => {
    if (err) {
        return console.log(err)
    }
    client = db
})

const database =  client.db('db')
const collection = database.collection('collection')

client.close()
错误呢

const database =  client.db('db')
                         ^

TypeError: Cannot read property 'db' of undefined

如注释所示,您可以使用async/await等待建立连接,并使用try/catch语句执行错误处理:

try {
  const client = await mongoClient.connect()
  const database =  client.db('db')
  const collection = database.collection('collection')
} catch(e) {
  console.log(e)
}
不要忘记在异步函数中使用它

更新

在异步函数示例中,您可能希望返回集合:

const getData = async () => {
  try {
    mongoClient = new MongoClient('mongodb://localhost:27017/', {useUnifiedTopology: true, useNewUrlParser: true})
    const client = await mongoClient.connect()
    const database =  client.db('db')
    const collection = database.collection('collection')
    client.close()
    return collection
  } catch(e) {
    console.log(e)
  }
}

在uri之后,必须定义db名称

mongoClient = new MongoClient('mongodb://localhost:27017/', {useUnifiedTopology: true, useNewUrlParser: true})
像这样

mongoClient = new MongoClient('mongodb://localhost:27017/shop', {useUnifiedTopology: true, useNewUrlParser: true})

mongoClient.connect
是异步的,您必须使用
await
或将
client.db
放在回调函数中。似乎我遇到了问题
const client=await mongoClient.connect()SyntaxError:await仅在异步函数中有效
您应该在异步函数中使用它,哦,是的,我明白了。非常感谢,我很高兴能帮上忙!