第一个hello word就出问题,是RP还是BUG?
发布于 12 年前 作者 dong2590 5622 次浏览 最后一次编辑是 8 年前

nodejs这么火,小小的尝试下…

平台环境:window7

nodejs:nodejs0.6.11

代码

console.log('hello world');

运行结果 node node.js

各种头大,各种搜索……无果 T_T,换掉文件名以后…… node hello.js

正常输出结果了……

你们以为就这样完了吗?

我把hello.js复制一份,改名为node.js,结果…… node hello.js

各位大大测试下,看有木有啊!

15 回复

我晕。。。node.exe node.js就正常了。。遇到过

他把 node.js当成一个可执行脚本了。。node 等于执行一个node.js 后面那个成了参数

+1 :)

超级有爱的写法

跑在了 wscript引擎里, 穿越了 ,哈哈哈。

看看环境变量注册对没

node -v 

看jscript了

现在问题是为什么用"node node.js"不会正常执行?如何二楼是正解,那么怎么解释同一目录下只要有node.js存在也不行?

我这里运行 node node.js 结果是用记事本打开node.js这个文件…神马情况… 用node.exe node.js可以运行

搜索一下PATH环境变量的目录里面,有没有 node.com node.cmd node.bat 之类的文件

linux下面没有这个问题 windows下好像不允许node.js这个文件存在 挺奇怪的

因为 .js 在 PATHEXT 里,所以在 cmd 里输入 node 查到了 ./node.js 然后执行了关联的 cscript node.js powershell 党路过……

这个问题其实很好解释: 因为windows把.js扩展名关联到了wscript.exe这个windows下的JScript脚本引擎,所以Windows命令解释器在执行"node node.js"这个命令行时,在当前目录中找到了"node.js"这个脚本,被解释成" wscript.exe node.js node.js"来执行, wscript.exe脚本引擎里没有定义 console这个对象,自然就会出错误。如果将node.js放到一个子目录"script"中,那么命令行" node script\node.js", 就会正常执行。因为Windows命令解释器在他的命令搜索路径中已经找不到node.js这个脚本,而是找到了node.exe,所以就能够正常执行了。

在卖萌么。。骚年

回到顶部