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);
});

然後就可以了。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章