strapi接入MongoDB Atlas

背景

strapi默认快速安装用的是sqlite,(就算选了Mongo,填写host那一步也会很懵逼,毕竟用的不是本地MongoDB),想换成免费的MongoDB Atlas(在mongodb官网可以白嫖512M的数据库),网上找别人博客好久没找到有用的,最后在官网找到了。

痛点

不知道在strapi项目的./config/database.js里面怎么替换MongoDB参数?

换了自己的参数总是连接不上?

提示“Connection test failed: Ports not accepted with 'mongodb+srv' URIs”?

提示“Connection test failed: Could not connect to any servers in your MongoDB Atlas cluster. One common reason is that you're trying to access the database from an IP that isn't whitelisted. Make sure your current IP address is on your Atlas cluster's IP whitelist: https://docs.atlas.mongodb.com/security-whitelist/”?

抓手

strapi接入MongoDB Atlas_第1张图片
image.png
strapi接入MongoDB Atlas_第2张图片
image.png
strapi接入MongoDB Atlas_第3张图片
image.png
strapi接入MongoDB Atlas_第4张图片
image.png

提效

总结上面的步骤,
1、在MongoDB Atlas (https://www.mongodb.com/cloud/atlas)注册账号并创建项目和数据库集群
2、创建用户,注意选这个 "Read and write to any database"
3、添加白名单 "0.0.0.0/0"
4、获取mongodb+srv字符串,并替换其中的密码
5、在./config/database.js 替换参数

赋能

1、第五步截图官方步骤里面还能看到一个Path: .env页面配置参数,完全没必要,直接写死不是更快

module.exports = ({ env }) => ({
  defaultConnection: 'default',
  connections: {
    default: {
      connector: 'mongoose',
      settings: {
        uri: 'mongodb+srv://用户名:密码@连接名/数据库名?retryWrites=true&w=majority',
        srv: true,
        port: 27017,
        database: 'strapi-mongo',
      },
      options: {
        authenticationDatabase: null,
        ssl: true,
      },
    },
  },
})

2、需要补充一个npm包

npm i strapi-connector-mongoose

3、保存并重新执行npm run develop,连接成功会启动项目,需要重新注册superAdmin

数据库链接成功后会自动创建一些表


strapi接入MongoDB Atlas_第5张图片
image.png

参考

https://strapi.io/documentation/developer-docs/latest/setup-deployment-guides/configurations/databases/mongodb.html#install-on-atlas-mongodb-atlas
API使用参考这篇:
https://blog.csdn.net/weixin_40326107/article/details/105817870

你可能感兴趣的:(strapi接入MongoDB Atlas)