gpt4 book ai didi

database - node.js 传递变量

转载 作者:搜寻专家 更新时间:2023-10-31 22:32:29 26 4
gpt4 key购买 nike

我在这里寻找一些经验丰富的 node.js 程序员的指导。我遇到的最大问题是将变量传递到单独的模块中。例如在我的 server.js 中我有以下内容:

var db = mongoose.createConnection('localhost','test');

现在我没有在 server.js 文件中运行我的路由,它们被分开到自己的文件中。因此,对于博客示例,它可能是这样的:

app.get('/blog/post/:id',function(req,res){
//do something here
}

现在这就是问题所在。我不想在我的每个路由中都设置数据库连接,更不用说我认为它会建立大量连接。我该如何处理这个问题,是否有一个示例“REAL WORLD”应用程序,因为我似乎找不到任何关于此的信息,而且我知道人们以前不得不遇到这个问题。我知道 Node 缓存模块,但我无法想象它会缓存连接,因为它在自己的模块中。我创建了一个仅包含站点配置的配置模块,因此在我需要的地方需要它不是问题。我想我还想用其他东西来做这件事,所以最好现在就弄清楚。

感谢任何帮助。

最佳答案

这是我在真实世界应用程序中所做的。

我有一个名为 redis 的模块(这是我正在使用的数据库)。它包含以下代码:

var store;

exports.store = store = redis.createClient(config.port, config.url);

因此,如果需要,我可以直接访问客户端。我几乎从不这样做。同一模块包含如下代码:

exports.getData = function(dataID, callback){

var key = DATA_STORE_PREFIX;

try{
store.hget(key, dataID, callback);
} catch(err){
callback(err);
}
}

我通过在一个或多个路由模块中包含 redis 模块并像这样调用它来使用它:

var db = require('redis');

db.getData('someData', function(err, result){
console.log(result); // real world code goes here!
});

Node 模块系统负责其余的工作。

关于database - node.js 传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13080771/

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