Cannot find module -----Node.js编程的第一个问题
因为手头上的东西需要用到Node.js,而且还是要在Linux下编程,所以我就去装ubuntu虚拟机(因为我是校园网,用ubuntu上不了网),这个过程也是折腾得我要死,所以我要在这里和那些要装在win7 32位下安装ubuntu虚拟机的同学说声,用VMware吧,不要用那个什么VirtureBox,那个我装过,用不了。安装完后,我就开始跟着教程来学习,结果,哈,第一个例子就将我难住了!难住我的并不是什么语法的问题,而是我根本就不会用Linux!!我之前一直在windows下编程,基本上已经变成所谓的“windows懒人”,但是现在却发现,Linux编程有好多命令啊,而且,我不清楚,我要运行的东西竟然也是要通过命令来运行!这些还不要紧,最主要的是,我满怀希望的写下第一个程序,显示“Hello Word",但是,结果竟然报错!!!
错误如下:
module.js:340
throw err;
^
Error: Cannot find module '/home/wenjiang/hellO.js'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.runMain (module.js:492:10)
at process.startup.processNextTick.process._tickCallback (node.js:244:9)
哈哈,其实这个问题很简单,就是我将所谓的hello写成hell0了,但是我没有发觉而已,上面显示的是hellO,因为我已经改过来了,也懒得再写个错误的,就将就着吧。好吧,就是这么一个莫名其妙的问题,倒是让我对Linux编程的一些基本的命令有些了解了,也算一件好事。
再次强调,我是第一次接触Linux,所以,根本就无法说出什么Linux的目录树啊什么的东西出来,我只是就着我这个问题,写出我的解决方法出来而已。
首先,我们写好一个js文件,这个文件的代码如:
console.log("Hello Word");
将这个文件命名为hello.js,然后在命令行(可以用快捷键Ctrl + Alt + T)输入cd hello.js所在的路径,如:
cd /home/....(注意,cd与/之间是有空格的!)
这样就能转到hello.js所在的目录页,就是它当前所在的位置,然后在当前位置直接用Node,js来运行;如:
node hello.js
这样,你就能在命令行所在的窗口看到Hello Word这几个字。
但是,如果你不是在hello.js当前的目录页执行,就会出现上面的问题,这时,你首先要解决的问题,就是看看你的文件名有没有输入错(就像我一样!!),然后看看Node.js的文件是否放在home下,一般来说,直接在ubuntu安装都不是放在home下,那么,你就要找到你的Node.js所在的目录,就是所在的那一页,然后执行下面的命令:
mv Node.js /home
就能将Node.js移动到home,那么,Node.js和hello.js是在同一目录下,Node.js就能找到并且运行它。
当然,你也会想看看当前页有什么内容,这是当你移动后发现依然出现上面的错误,你就要检查你这里是否有hello.js了,就得输入下面的命令:
ls
然后,你就能看到当前页的所有文件了。
还有一个基本的,就是你想要看一下当前页的路径,那么,你可以这样输入命令:
pwd
那么,就会显示出当前的路径了。
这些都是很简单的问题,但是却让我头疼了一下,主要是网上的教程不知道在说什么,因为我对Linux一点也不懂啊!!而且那些人说得也太复杂了,竟然Node.js与hello.js不在同一目录,那么,我只要转到hello.js所在的目录执行Node.js不就行了呗?
所以,遇到类似的问题而解决不了的,估计是和我一样的Linux苦手了,是的,不是新手,是苦手,我得花一定时间来研究它了,看看那些书,里面的东西还真不少,而且有些真的是,唉,只要多实践还是可以掌握的。