Node JS学习笔记

首先感谢http://ourjs.com/detail/529ca5950cb6498814000005#server-side-javascript

这篇blog对我帮助很大。我是跟着一步步来的。

我是在win7上进行的,首先是在官网上下载安装文件,这里我直接就用的是*.msi文件,

wKioL1Y4wuuwhZJeAAPnuv41oNQ386.jpg

这个我用这个原因是它自己就同时安装了npm,

这里有个问题需要说明下,就是再用win8的时候需要注意,安装时候会报错。error code 2503

百度一番是因为权限不够,那么就用命令行方法打开,并且是管理员身份。

win键加X,然后A就可以打开了,但是这里有个问题就是不能进入到除了C盘以外的盘符(这里我希望谁能看到这篇博文,有解决办法告诉我下。谢谢啦。),所以我只能把安装文件挪到C盘了。然后执行msiexec /package node-v4.2.2-x64.msi,然后再安装就可以了。

wKioL1Y5oBagswLRAANfHEc7EaM733.jpg

并且把nodejs也写到环境变量里了。

wKioL1Y5oO-B5RqmAAB9e8VX2Fs216.jpg

其实这个也可以自己手动添加的。

完成后可以通过cmd来看一下他们的版本号:

wKioL1Y-9FSCDy0ZAABustdqX_U415.png

现在就可以来创建helloWorld了,跟着之前提到的文章,去开始就可以了。

然后在学习上传文件的时候,也就是需要安装那个formidable的module的时候,问题来了,我执行了npm安装后,能成功安装,当然了,我是打开那个项目的路径下,就直接安装在项目下的node_modules里了,这个时候我查看,在这个文件夹里是有这个module的。

wKioL1Y5o3TT6CbVAAEaLW1Duhc239.jpg

wKiom1Y5o0KC1klsAACOAa5OuUE836.jpg

然后启动server正常。并且上传图片后,会显示上传文件的信息,我这里中文是乱码的,

wKioL1Y5qMqyxhjtAAEQCBbETmw909.jpg

和主题无关,也不想弄它。

还有一种情况就是,假如说有个module是共用的,就是别的也会用的那种,最好是有个全局的地方能存放。node有这种东西。但是需要设置的。

http://my.oschina.net/JeeChou/blog/219699

接下来就是解释那两个nodejs里的文件夹了。可能node的权限不够吧,这两个文件夹需要手动创建,然后再参照上面blog,主要就是两个

npm config set prefix "E:\Rex\nodejs\node_global"

npm config set cache "E:\Rex\nodejs\node_cache"

见名知意,一个是全局模块存放位置,一个是缓存模块存放位置。

在执行了npm install formidable -g之后,在node_global文件夹下就会有那个了

wKioL1Y5rTmRKkWZAAFrfnlbNo8907.jpg

然后不要以为这样在程序中就可以使用了。错。虽然安装了全局里了,但是那个是供命令行使用的,但是命令行想使用的话,还需要在环境变量里添加一个NODE_PATH才行。

wKioL1Y_AGDC9pgDAAAwbbFAz-A015.png

wKioL1Y5rcngL21ZAABxf_PX3gI118.jpg

要想在项目中require的话,需要在项目中自行添加。

然后再在项目中require就可以了。

回来继续讲

Node初学者入门,一本全面的NodeJS教程

里面碰到的问题。

上传图片后修改名字

wKioL1Y5tASi1if6AAEuXowT4Rw073.jpg

他是这么用的,但是现在已经不可以这么用的。因为它不能跨盘符,还需要修改,请参考

http://stackoverflow.com/questions/12196163/node-js-fs-rename-doesnt-work

wKiom1Y5tDKj60QAAAFSoeUHenQ130.jpg

var fs = require("fs"),
util = require('util');
...
//fs.renameSync(files.upload.path, "/tmp/test.png");

var readStream = fs.createReadStream(files.upload.path)
var writeStream = fs.createWriteStream("/tmp/test.png");

util.pump(readStream, writeStream, function() {
    fs.unlinkSync(files.upload.path);
});

然后就可以了。





你可能感兴趣的:(node学习)