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

“什么导致错误”;连接测试失败:生成npm;“依诺特”;在使用MongoDB创建新的Strapi项目时?,mongodb,ubuntu,strapi,Mongodb,Ubuntu,Strapi,我正在尝试使用MongoDB在Ubuntu 16.4上创建一个新的Strapi应用程序。在逐步完成教程之后,这里:,我得到以下错误:连接测试失败:spawn npm;埃诺特 这个错误似乎很明显,但我很难找到它的原因。我已经安装了最新版本的MongoDB,并确保它使用服务mongod状态运行。我也可以使用nc直接连接,如下所示 $ nc -zvv localhost 27017 Connection to localhost 27017 port [tcp/*] succeeded! 以下是终端

我正在尝试使用MongoDB在Ubuntu 16.4上创建一个新的Strapi应用程序。在逐步完成教程之后,这里:,我得到以下错误:连接测试失败:spawn npm;埃诺特

这个错误似乎很明显,但我很难找到它的原因。我已经安装了最新版本的MongoDB,并确保它使用
服务mongod状态运行。我也可以使用nc直接连接,如下所示

$ nc -zvv localhost 27017
Connection to localhost 27017 port [tcp/*] succeeded!
以下是终端输出的图像:


如有任何帮助,我们将不胜感激!Strapi是否会在某个地方记录安装错误,或者是否有办法获得详细的日志记录?MongoDB是否可能在某处记录连接错误?

我找到了答案。问题在于使用npx代替纱线。Strapi文档说明这两种方法都应该有效,但是,根据我的经验,使用npx时存在一个bug

我换成了纱线,整个过程按预期顺利进行。在其他方面,步骤完全相同

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

Strapi文件(不正确):

根据我的经验,正确使用:

yarn create strapi-app my-project

我找到了答案。问题在于使用npx代替纱线。Strapi文档说明这两种方法都应该有效,但是,根据我的经验,使用npx时存在一个bug

我换成了纱线,整个过程按预期顺利进行。在其他方面,步骤完全相同

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

Strapi文件(不正确):

根据我的经验,正确使用:

yarn create strapi-app my-project
eNONT错误是“error NO ENTry(或error NO ENTity)的缩写,实际上可用于多个文件/目录。”

我在这方面读到的所有内容都指向环境变量和process.env.PATH的问题。 注意:此错误几乎总是由命令不存在、工作目录不存在或仅限windows的错误引起的

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

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

enoint错误是“error NO ENTry(或error NO ENTity)的缩写,实际上可用于多个文件/目录。”

我在这方面读到的所有内容都指向环境变量和process.env.PATH的问题。 注意:此错误几乎总是由命令不存在、工作目录不存在或仅限windows的错误引起的

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

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