gpt4 book ai didi

java - Node.js MongoDb 确保集合异步工作流程

转载 作者:行者123 更新时间:2023-12-01 15:14:39 25 4
gpt4 key购买 nike

我对 Node.js 很陌生,我正在使用 MongoDb 驱动程序,我了解 Node.js 的工作流程是事件驱动的,一切都是异步运行的,但我只是不明白如何做这样的事情:

var mongo = require('mongodb');
var db = new mongo.Db('meta', new mongo.Server('localhost', 27017, { auto_reconnect: true }));

db.open(function(error, db){
if(error){
throw error;
}

db.collection('logs', function(error, collection){
if(!collection){
db.createCollection('logs', callback); // How does this callback works? I mean, how can we continue the previous execution of the script?
}

// Have fun.
});
});

所以对于上面的脚本我想:

  1. 打开连接
  2. 检查日志收集,如果没有创建,否则继续...
  3. 创建用户?工作吗?

我仍在适应异步模型,谢谢您的帮助。

最佳答案

在这种情况下我通常做的是将延续包装在命名回调中:

if (!collection) {
db.createCollection('logs', next);
} else {
next(null, collection);
}

function next(err, collection) {
// do something
}

话虽这么说,createCollection 方法还将返回集合对象,并且仅在集合对象尚不存在时才创建它。你可以直接写:

db.createCollection('logs', function(err, collection) {
// do something
});

关于java - Node.js MongoDb 确保集合异步工作流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11798883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com