NODE JS 筆記篇|>>----------------------------------------------------------------------------------------------------html
一、相關基礎命令行操做
java
Install express npm install -g express Create a new app express your_app cd into app directory cd your_app use npm link to resolve modules npm link express Set NODE_PATH=NODE_HOME\node_modules https://github.com/visionmedia/express/wiki/Migrating-from-2.x-to-3.x renamed app.register() to app.engine()
二、Node和npm在 Mac 中的默認安裝目錄
node
Node was installed at /usr/local/bin/node npm was installed at /usr/local/bin/npm
Make sure that /usr/local/bin is in your $PATH.
git
三、阻塞與非阻塞
github
下面的代碼中,當函數start()被調用的時候,Node.js會先等待10秒,以後纔會返回「Hello Start」。express
當調用upload()的時候,會和此前同樣當即返回。(固然了,這裏只是模擬休眠10秒,實際場景中,這樣的阻塞操做有不少,比方說一些長時間的計算操做等。)npm
接下來就讓咱們來看看,咱們的改動帶來了哪些變化。如往常同樣,咱們先要重啓下服務器。瀏覽器
爲了看到效果,咱們要進行一些相對複雜的操做(跟着我一塊兒作): 首先,打開兩個瀏覽器窗口或者標籤頁。在第一個瀏覽器窗口的地址欄中輸入http://localhost:8888/start, 可是先不要打開它!在第二個瀏覽器窗口的地址欄中輸入http://localhost:8888/upload, 一樣的,先不要打開它!sass
接下來,作以下操做:在第一個窗口中(「/start」)按下回車,而後快速切換到第二個窗口中(「/upload」)按下回車。服務器
注意,發生了什麼: /start URL加載花了10秒,這和咱們預期的同樣。可是,/upload URL竟然也花了10秒,而它在對應的請求處理程序中並無相似於sleep()這樣的操做!
這究竟是爲何呢?緣由就是start()包含了阻塞操做。形象的說就是「它阻塞了全部其餘的處理工做」。
function start() { console.log("Request handler 'start' was called."); function sleep(milliSeconds) { var startTime = new Date().getTime(); while (new Date().getTime() < startTime + milliSeconds); } sleep(10000); return "Hello Start"; } function upload() { console.log("Request handler 'upload' was called."); return "Hello Upload"; } exports.start = start; exports.upload = upload;
四、response.write 輸出格式
"Content-Type": "text/plain" // 以字符串形式插入到頁面中
"Content-Type": "text/html" // 以 html 形式插入到頁面中
response.writeHead(200, {"Content-Type": "text/plain"}); response.write(html); response.end();
NODE JS 資料篇|>>----------------------------------------------------------------------------------------------------
一、相關資料列表:
二、Node 開發框架 Express 資料
Express是一款基於Node.js的高性能高級Web框架。
若是你之前用過Ruby社區的Sinatra框架,你會以爲Express和它的風格很像。
按照程序猿和攻城獅們的慣例,來個Hello World:
var app = express.createServer(); app.get('/', function(req, res){ res.send('Hello World'); }); app.listen(3000);
想看文檔教程神馬的,請到官網:http://expressjs.com
Express的源碼託管在這裏:https://github.com/visionmedia/express
Express使用了Connect中間件,Connect的文檔在這裏:http://senchalabs.github.com/connect/
若是你想作單元測試,能夠看看TDD框架Expresso:http://visionmedia.github.com/expresso/
Express可選的Jade模板引擎也挺有趣的,它和haml是親戚,像是個HTML預編譯器:http://jade-lang.com/
說到haml,你也能夠了解下sass,它像一個CSS預編譯器:https://github.com/visionmedia/sass.js
不過同類產品中,我更喜歡不那麼激進的less:https://github.com/cloudhead/less.js
Express框架之app.js配置文件說明:http://my.oschina.net/youdoce/blog/68658
Express.js 中文入門指引手冊:http://my.oschina.net/youdoce/blog/68476
NODE JS 教程篇|>>----------------------------------------------------------------------------------------------------
【官方網站】好吧,閱讀英語文檔能力強的直接入
【入門教程】從helloworld開始,須要必定基礎知識
http://www.nodebeginner.org/index-zh-cn.html
http://my.oschina.net/maomi/blog/80388
【幫助教程】
深入理解nodejs 「基於事件驅動的回調」
http://debuggable.com/posts/understanding-node-js:4bd98440-45e4-4a9a-8ef7-0f7ecbdd56cb
Martin Fowlers關於依賴注入的大做
http://martinfowler.com/articles/injection.html
《名詞王國中的死刑》
譯文:http://justjavac.iteye.com/blog/1604046
原文:http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html
【安裝教程】Windows下使用NodeJS和npm安裝UglifyJS對JavaScript進行壓縮或美化(參考第一二步便可)
http://www.cnblogs.com/sorex/archive/2011/12/14/2287635.html
node -v //查看nodejs版本 npm -v //查看npm版本
【使用運行】
安裝以後,創建文件夾,編寫測試js文件,cmd 進入包含測試js文件的文件夾,運行
cd e://test/nodejs/example.js //進入測試文件所在文件夾
node example.js //執行該js腳本