Node.js 如何在mongoose中创建新数据库?

Node.js 如何在mongoose中创建新数据库?,node.js,mongodb,mongoose,database,Node.js,Mongodb,Mongoose,Database,如果我在node.js中使用Mongoose,我需要执行以下操作: var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/myDB'); 但是,如果我只是安装了mongodb,而我现在没有任何DB呢?在执行mongoose.connect之前,如何在node.js中使用mongoose创建新的数据库mongodb://localhost/myDB)?或者,如果没有这样的myDB,它会创建一个新数据库吗

如果我在node.js中使用Mongoose,我需要执行以下操作:

var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/myDB');

但是,如果我只是安装了mongodb,而我现在没有任何DB呢?在执行
mongoose.connect之前,如何在node.js中使用mongoose创建新的数据库mongodb://localhost/myDB)
?或者,如果没有这样的
myDB
,它会创建一个新数据库吗?或者会抛出一个没有这样的DB的错误?

它不应该抛出任何错误。当您在该数据库的任何新集合中插入文档时,将在Mongoose中创建该集合和数据库

,当调用
new mongoStore()
时,将创建一条新的数据库记录:

  app.use(session({
    resave: false,
    saveUninitialized: true,
    secret: pkg.name,
    store: new mongoStore({
      url: config.db,
      collection : 'sessions'
    })
  }));


当我试图通过猫鼬连接时,我找到了一个解决方案

您需要为正确的数据库指定凭据(作为用户名和密码)(在我的例子中是
admin
(我以前从未创建过
admin
db,但它工作了,可能是默认创建的
admin
db?)

但是,如果要连接到另一个数据库,该怎么办?您应该在连接选项中感觉到
authSource
方法(在uri中指定另一个数据库:mongodb://localhost:27017/database):

mongoose.connect(
蒙古里,
{
authSource:'管理员',
useNewUrlParser:true,
useUnifiedTopology:正确,
useCreateIndex:true,
用户:config.mongo.username,
pass:config.mongo.password,
服务器选择超时:5000,
},
(错误)=>{
if(err!=null){
错误('mongoose',错误消息);
}否则{
信息(“猫鼬”、“猫鼬连接”);
}
},
)

我是否看到有API
createNewDB(…)
?否。如何在node.js中使用mongoose创建新的DB?那么指定的URL是否仅用于解析mongodb服务器的URL和DB名称?为什么不单独做呢?这个URL/mongoURI不仅提供服务,指定服务器名称,还提供许多其他功能。请查看以下内容:。此外,您还必须检查客户端驱动程序是否支持所有。另外,我不想将dbName传递给mongoURI,而是希望您可以单独执行。至少在java驱动程序中,我们可以肯定地做到这一点。这个答案似乎是针对
express
的,而且也不能很好地回答这个问题。
const mongoStore = require('connect-mongo')(session);