mongodb Payload CMS无法连接到mongo DB

zaqlnxep  于 2023-03-22  发布在  Go
关注(0)|答案(2)|浏览(227)

我试图启动并运行Payload CMS,当我运行npm run dev时,我遇到了一个错误:
错误(有效负载):错误:无法连接到MongoDB。详细信息:URI没有主机名,域名和tld [nodemon]应用程序崩溃-在启动前等待文件更改...
我在本地机器上安装了mongo,并选择了 * 以网络服务用户身份运行服务 *,并选择不安装Mongo Compass。在Payload的设置中,它要求提供mongo数据库的路径。在mongo上设置新数据库后,我选择了 * 连接到您的应用程序 * 选项,并复制了以下片段
mongodb+srv://my_db_name:@my_name.something.mongodb.net/myFirstDatabase?retryWrites=true&w=majority
并将其粘贴到Payload设置要求的位置。在我的项目中,我有一个.env文件,看起来像这样

MONGODB_URI = mongodb+srv://my_db_name:my_password@my_name.something.mongodb.net/myFirstDatabase?retryWrites=true&w=majority
PAYLOAD_SECRE = my_super_long_secret_key_thats_not_this

现在我注意到这些值没有任何引号,所以我添加了一些计算,也许它需要被强制为字符串,但我仍然得到了同样的错误。据我所知,我的数据库名称,密码和域都在.env文件提供的URI中。在文档中,它说要运行node server.js才能启动它。在我的例子中是server.ts,因为我使用的是typescript,但它没有做任何事情。我发现了一个使用yarn dev的创作者的视频,所以我决定尝试npm run dev来让它运行,它似乎可以正常启动,直到连接到mongo失败。有人知道我可能做错了什么吗?

wbgh16ku

wbgh16ku1#

localhost更改为127.0.0.1

示例:

mongodb://localhost/ -〉mongodb://127.0.0.1/

n3h0vuf2

n3h0vuf22#

你是否使用npx create-payload-app创建了应用程序?如果是,那么使用npm run dev运行应用程序是个好主意。它在开发脚本中有PAYLOAD_CONFIG_PATH变量-你可以在package.json文件中检查这个变量。
您说您正在使用本地MongoDB安装,但您的MONGODB_URI看起来像是MongoDB Atlas服务的地址。

  1. MongoDB Atlas连接-如果是这种情况,请检查您是否已授权从您的IP地址访问MongoDB Atlas -Atlas connection guide
    1.本地MongoDB安装-如果您确定使用本地数据库,那么您的地址应该如下所示mongodb://root:example@localhost:27017
    对于本地MongoDB管理和连接测试,您可以使用MongoDB Compass应用程序-这是一个简单的图形工具。

相关问题