是什么原因导致错误“连接测试失败:生成npm; ENOENT”在使用MongoDB创建新的Strapi项目时?

问题描述 投票:1回答:2

我正在尝试使用MongoDB在Ubuntu 16.4上创建一个新的Strapi应用程序。在完成本教程的学习后,在这里https://strapi.io/documentation/3.0.0-beta.x/guides/databases.html#mongodb-installation,出现以下错误:连接测试失败:spawn npm; ENOENT

该错误似乎很明显,但是我在找到导致它的原因时遇到了问题。我已经安装了最新版本的MongoDB,并已使用service mongod status确保它正在运行。我也可以使用nc直接连接,如下所示。

$ nc -zvv localhost 27017
Connection to localhost 27017 port [tcp/*] succeeded!

这里是终端输出的图像:enter image description here

任何帮助排除故障,将不胜感激! Strapi可能在某处记录设置错误,还是有办法获取详细记录? MongoDB是否可能在某处记录连接错误?

mongodb ubuntu strapi
2个回答
0
投票

我能够找到答案。问题是使用npx而不是Yarn。 Strapi文档指出这两种方法都应该起作用,但是,根据我的经验很明显,使用npx时存在错误。

我切换到了Yarn,该过程按预期进行,没有错误。否则步骤完全相同。

更新:Strapi文档中也有错字。它们在项目名称之前包含单词“ new”,这将创建一个名为new的项目,并忽略该项目名称。

Strapi文档(不正确):

yarn create strapi-app new my-project

根据我的经验正确使用:

yarn create strapi-app my-project

0
投票

ENOENT错误是“ Error NO ENTry(或Error NO ENTity)的缩写,实际上可用于多个文件/目录。”Why does ENOENT mean "No such file or directory"?

我阅读的所有内容都指向环境变量和process.env.PATH的问题。“注意:几乎总是由于该命令不存在,由于工作目录不存在或仅Windows错误导致此错误。”How do I debug "Error: spawn ENOENT" on node.js?

如果采用上面的链接中的Jiaji Zhou提供的功能,并将其粘贴到config / functions / bootstrap.js文件(在module.exports上方)的顶部,则可能会更好地了解错误的位置发生,特别是它应该告诉您它运行的命令。然后运行命令> which nameOfCommand以查看其返回的文件路径。“未安装的程序是未找到命令的最常见原因。如果需要,请参考每个命令文档并进行安装。” -laconbass(来自同一链接,在周嘉吉的回答下方)

这就是我解释以上所有内容并形成解决方案的方式。将该函数放在bootstrap.js中,然后接受从该函数返回的命令并运行> which nameOfCommand。然后在bootstrap.js(您可以注释掉该函数)中,放入console.log(process.env.PATH),它将返回当前环境正在检查可执行文件的所有目录的字符串。如果您从哪个命令返回的路径不在您的process.env.PATH中,则可以将命令移至路径中,或尝试重新安装。

© www.soinside.com 2019 - 2024. All rights reserved.