gpt4 book ai didi

node.js - .connect() 中的回调范围(nodejs、mongodb)

转载 作者:太空宇宙 更新时间:2023-11-04 02:29:26 25 4
gpt4 key购买 nike

我尝试使用全局数据库对象来处理我的nodejs 服务器上的数据。它应包含所有连接用户的所有数据。随时可以从内存中访问。

因此我创建了一个模块:

function Database() {
var MongoClient = require('mongodb').MongoClient;
this.dbcon; //database connection

// Connect to the db
MongoClient.connect("mongodb://localhost:27017/dbname", this.givedatabasevars);
};

因为我想重用数据库连接,而不是每次想使用回调函数访问对象的属性并为它们提供连接对象时打开新的连接:

Database.prototype.givedatabasevars = function(err, getdbcon) {
if(err) {console.log(err)};
this.dbcon = getdbcon; //not working(scoped changed when used as callback?)
db.dbcom = getdbcon; //also not working(db object maybe not there yet as its a callback in constructor?)

};

我使用这个全局创建对象:

var Database = require('./node_modules/database/database.js');
var db = new Database();

现在我对 Nodejs 和 JavaScript 都很陌生。我试图了解如何访问对象范围,但在回调中我什至无法访问全局范围。

这可能吗?当使用 .find() 和回调时如何处理数据是一样的。如何从中获取数据以供我的应用程序使用?我需要存储它,而不是直接使用它。

问候,迈克尔

最佳答案

您可以使用global变量访问全局对象。在普通文件上执行 console.log(this) 以查看所有全局变量。

对于 mongodb 也许 mafintosh/mongojs可以为您提供更具共享性的界面。事实上,我认为你甚至不需要有一个全局的;)

关于node.js - .connect() 中的回调范围(nodejs、mongodb),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28125164/

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