前言javascript
4. sublime text 一個灰常不錯的編輯器. 使用入門
html
開始幹活java
1. 來個helloworld node
建立test.js 輸入:console.log('hello world'); python
打開命令行到你的當前目錄(test.js所在目錄),執行 node test.js 回車。jquery
以下圖所示 linux
2. $ node -e "console.log('Hello World');"c++
Hello Worldgit
3. $ nodegithub
>console.log('hello world');
Hello World
undefind
須要注意的地方:第一句話是打印的結果,第二句話是說函數返回值。
4. 建立httprequest如此簡單
a. 新建test1.js. 拷貝如圖代碼, node test1.js.
b. 打開瀏覽器,輸入 http://localhost:3000/ 能夠看到效果。web版hello world.
var http = require('http'); http.createServer(function(req,res){ res.writeHead(200,{'content-type':'text/html'}); res.write('<h1>Node.js</h1>'); res.end('<p>hello world</p>'); }).listen(3000); console.log('http server is listening at port 3000');
|
這個模塊中第一句話 require('http'). 是應用node.js中的http模塊。 凡是node.js提供的模塊都可以直接require.
5. 經過上面運行,能夠看到和asp.net 有一些不一樣。 asp.net 是經過瀏覽器發出請求->IIS->解析渲染成html返回。 而node則直接面向瀏覽器。
總結
1. node.js不是javascript庫,和jquery、extjs不能相提並論。node.js是讓腳步運行在服務端的平臺.
2. npm是node.js包管理器,能夠全局安裝,也能夠只安裝到工做目錄。重複利用的通常選擇全局安裝,而本地安裝則通常是當前程序使用。
3. 在windows下安裝,會在自動配置環境變量。因此能夠直接輸入node命令。
4. 第三方包夠不夠多:
(npm)Total Packages: 49 639
node.js夠不夠活躍
1 154 560 | downloads in the last day |
29 060 396 | downloads in the last week |
5. node.js架構: 說實在的這張圖我看到node下層接口,在向下就看不懂了,V8我還知道一些,google瀏覽器就是基於v8引擎開發,而javascritp在google運行良好,因此我也更好的理解了node.js。
來自Node.js開發指南
5. 事件驅動,異步:
a. nodejs內部是單進程,單線程的方式運行。nodejs經過單線程維護一個事件循環隊列來應對http併發的訪問,同時也避免了進程/線程之間的切換。那麼對將來服務器的多核時代、甚至是衆核nodejs是怎麼處理的。個人理解是nodejs調用C++代碼,c++代碼實現多線程,這樣暴露api供nodejs使用者調用,實現充分利用cpu。後來看到文章(nodejs多線程,真正的非阻塞),更堅決了學習node的信心。
b. 放眼望去全是callback. 同步和異步就是 m+n 和 max(m,n)。這樣node.js開發就要求咱們轉換開發思路。
6. 爲何要趁熱,看不少資料發現都調試不過,我就各類查詢也瞭解了不少知識,才能夠調試經過。
7. node擅長幹什麼,不擅長幹什麼?
nodejs爲網絡而生,剩下的就不用說了。
nodejs不適合作什麼? (如下內容來自nodejs開發指南)
a. 計算密集型的程序
b. 單用戶多任務型應用
c. 邏輯十分複雜的事務
d. unicode與國際化
8. 有問題仍是去 stackoverflow
9. 中文資料彙總
參考資料:
深刻淺出node.js
node.js學習指南
下一站:
使用express建立一個網站,數據庫使用mongodb.
模板使用ejs.