gpt4 book ai didi

javascript - NodeJS 与 MongoDB - 实例化 "db"变量的最佳实践

转载 作者:太空宇宙 更新时间:2023-11-03 22:37:47 24 4
gpt4 key购买 nike

我目前正在尝试掌握 NodeJS/Express/MongoDB 并阅读一些相关教程。在 this tutorial by Christopher Buecheler ,考虑步骤 5 和 6:

app.js中,添加以下代码:

// ...
var mongo = require('mongodb');
var monk = require('monk');
var db = monk('localhost:27017/nodetest1');

app.get('/userlist', routes.userlist(db));
// ...

routes/index.js 中,您可以找到属于 /userlist 路由的处理程序:

exports.userlist = function(db) {
return function(req, res) {
// do stuff
};
};

我对将 db 对象传递给每个处理程序感到困惑,因为在我看来,它会产生大量冗余,因为您需要将它传递给每个处理程序并在其周围包装一个附加函数。因此,我尝试将 db 对象的初始化添加到 routes/index.js 文件中,该文件似乎工作正常,并且在处理更多网址时节省了很多行:

var mongodb = require('mongodb');
var monk = require('monk');

var db = monk('localhost:27017/nodetest1');

exports.userlist = function(req, res) {
// do stuff
};

由于我是 MongoDB 新手,这样做有什么缺点吗?将 db 对象传递给每个处理程序有什么好处?

最佳答案

我个人就像你一样,在使用它的地方实例化它。

但是我看到其他人像在本教程中那样做,每次都会传递它,我认为如果您需要在多个地方使用该数据库,这确实有意义,想想如果您有许多不同的文件都需要该数据库...现在每次都实例化它,这将是多余的。

好吧,这就是我的 2 美分...不确定是否有任何“好的”答案...将其保留在 app.js 中可能是一个很好的做法,以防您到处都需要它,但是我认为如果只在特定的地方使用,那么这样做没有任何缺点。

关于javascript - NodeJS 与 MongoDB - 实例化 "db"变量的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22725194/

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