我试图启动并运行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失败。有人知道我可能做错了什么吗?
2条答案
按热度按时间wbgh16ku1#
将
localhost
更改为127.0.0.1
示例:
mongodb://localhost/
-〉mongodb://127.0.0.1/
n3h0vuf22#
你是否使用
npx create-payload-app
创建了应用程序?如果是,那么使用npm run dev
运行应用程序是个好主意。它在开发脚本中有PAYLOAD_CONFIG_PATH
变量-你可以在package.json
文件中检查这个变量。您说您正在使用本地MongoDB安装,但您的
MONGODB_URI
看起来像是MongoDB Atlas服务的地址。1.本地MongoDB安装-如果您确定使用本地数据库,那么您的地址应该如下所示
mongodb://root:example@localhost:27017
对于本地MongoDB管理和连接测试,您可以使用MongoDB Compass应用程序-这是一个简单的图形工具。