Mongodb 连接到Altlas或本地主机

Mongodb 连接到Altlas或本地主机,mongodb,mongoose,localhost,mongodb-atlas,Mongodb,Mongoose,Localhost,Mongodb Atlas,我可以连接到localhost或Atlas,但当我尝试使用| |时,它会断开。当连接到Atlas时,我必须指定“dbName”,但它会破坏我的本地主机 此代码适用于本地主机: mongoose.connect( process.env.LOCAL ); mongoose.connection.on("open", function (ref) { console.log("Connected to mongo server."); }); mongoose.connection.on('er

我可以连接到localhost或Atlas,但当我尝试使用| |时,它会断开。当连接到Atlas时,我必须指定“dbName”,但它会破坏我的本地主机

此代码适用于本地主机:

mongoose.connect( process.env.LOCAL );
mongoose.connection.on("open", function (ref) {
  console.log("Connected to mongo server.");
});
mongoose.connection.on('error', function (err) { console.log(err) });
这段代码适用于我的Atlas:

mongoose.connect( process.env.ATLAS_URI, { useNewUrlParser: true, dbName: 'wwatlasDB' });
mongoose.connection.on("open", function (ref) {
  console.log("Connected to mongo server.");
});
mongoose.connection.on('error', function (err) { console.log(err) });
但当我尝试时:

mongoose.connect( process.env.LOCAL || process.env.ATLAS_URI, { useNewUrlParser: true, dbName: 'wwatlasDB' });

它失败了。有什么方法可以做到这一点吗?

简单的方法就是在连接之前检查您是否有当前的
env
,例如:

if(process.env.LOCAL) {
 mongoose.connect( process.env.LOCAL );
} else {
 mongoose.connect( process.env.ATLAS_URI, { useNewUrlParser: true, dbName: 'wwatlasDB' } );
}
mongoose.connection.on("open", function (ref) {
 console.log("Connected to mongo server.");
});
mongoose.connection.on('error', function (err) { console.log(err) });

这似乎也是本地连接

嗯,那不行。问题似乎是当我指定dbName(连接到Atlas需要dbName)时,我的local不起作用。在本地连接时,有没有办法忽略该逻辑?
mongoose.connect( process.env.ATLAS_URI, { useNewUrlParser: true, dbName: 'wwatlasDB' });
mongoose.connection.on("open", function (ref) {
  console.log("Connected to mongo server.");
});
mongoose.connection.on('error', function (err) { console.log(err) });