无法在命令提示符下运行nodejs脚本

当我尝试在Windows命令提示符下运行一个node.js程序来说明它的位置时,它总是会说:

[声明的位置]不被识别为内部或外部命令,可操作程序或batch file。

在类似问题的所有答案中,在所有的node.js手册中,假定您可以通过从其位置调用node.js文件来运行它。 在build立一个服务器之前总会有尝试一些hello world的build议,等等。

即使我使用prompt $ cmd清理命令提示符,然后手动编写整个位置,我也会得到相同的消息。

当我跑步

 echo %path% 

我得到C:\Program Files\nodejs\bin

当我跑步

 node -v 

我得到v6.10.3

当我跑步

 node a00.js 

(其中a00.js是脚本的名字),它认为整个path是一个模块,所以它说它cannot recognize that module

如果我用prompt $ cmd清除命令提示符,然后运行node a00.js ,它认为a00.js是一个模块,所以它说它cannot recognize that module

你的path知道node.js在哪里,但是它不知道a00.js在哪里。 所以你需要运行命令作为node然后是文件的path。 (复制包括双引号的所有命令)

 node "C:\Program Files\nodejs\a00.js" 

作为一个例子,试试这个。

创build一个名为hello.js的文件保存在C:\Windows\Temp\ (或者你喜欢的地方)

 var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(1337, "127.0.0.1"); console.log('Server running at http://127.0.0.1:1337/'); 

现在打开cmd并像这样运行(假设你保存在C:\Windows\Temp\

 node "c:\Windows\Temp\hello.js" 

如果你从path中运行它,也就是说你的CD到a00.js文件所在的目录,那么你只能运行它作为`node a00.js

作为一个例子,假设在C:\Windows\Temp存在a00.js

 cd c:\Windows\Temp node a00.js 

使用任何path时的重要注意事项 ,请始终用双引号括起来。

这会导致错误:

 node C:\Program Files\test\a00.js 

这将工作:

 node "C:\Program Files\test\a00.js"