【问题标题】:How to add MongoDB Atlas cloud database in KeystoneJS v5如何在 KeystoneJS v5 中添加 MongoDB Atlas 云数据库
【发布时间】:2020-02-03 19:24:31
【问题描述】:

我在 MongoDB Atlas Cloud 上有数据库服务器。 我可以使用 MongoDB 本地数据库设置 Keystonejs 5,但我不符合 Keystonejs 对数据库连接字符串和设置的期望。

以下细节可能有助于理解我的问题

Mongoose 数据库适配器

用法

const { MongooseAdapter } = require('@keystonejs/adapter-mongoose');

const keystone = new Keystone({
  name: 'My Awesome Project',
  adapter: new MongooseAdapter(),
});

APInew MongooseAdapter(options)

options.mongoUri(可选)

这用作mongoose.connect()uri 参数。

默认值: 环境变量(见下文)或'mongodb://localhost/<DATABASE_NAME>'

如果未指定,KeystoneJS 将首先查找以下环境变量之一:

  • CONNECT_TO,
  • DATABASE_URL,
  • MONGO_URI,
  • MONGODB_URI,
  • MONGO_URL,
  • MONGODB_URL,
  • MONGOLAB_URI,
  • MONGOLAB_URL

如果这些都没有找到,则使用 KeystoneJS 项目名称中的 DATABASE_NAME 派生连接字符串。

猫鼬选项(可选)

其他 Mongoose 配置选项直接传递给 mongoose.connect()

有关选项的详细列表,请参阅Mongoose docs

【问题讨论】:

    标签: node.js mongodb mongoose keystonejs


    【解决方案1】:

    您只需添加一个与问题中列出的环境变量之一匹配的环境变量,然后将该环境变量设置为 MongoDB atlas cloud 为您提供的连接字符串。

    我在我的项目中添加了一个 .env 文件,然后在那里添加了 MONGO_URI 的条目,然后使用了 dotenv 包。

    【讨论】:

      【解决方案2】:

      您可以通过添加.env 文件来实现,也可以直接将mongoUri 传递给适配器。

      请看下面的代码:

      const keystone = new Keystone({
        name: 'My Awesome Project',
        adapter: new MongooseAdapter({mongoUri:"mongodb+srv://....."}),
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多