本文給大家介紹的是node.js的初體驗,從最簡單的內容開始,慢慢的深入分析node.js。並附上一則很不錯的文章《7天學會nodeJS》更加詳細的向我們展示了node.js的學習步驟。
先來簡單介紹nodeJS
我們知道JavaScript是運行在浏覽器中的,浏覽器為它提供了一個上下文(context),從而讓JavaScript得以解析執行。
nodeJS其實可以這麼理解,它是另外一種上下文,它允許在後端(脫離浏覽器環境)解析執行JavaScript代碼。
因為它使用了Google的V8虛擬機(Google的Chrome浏覽器使用的上下文環境),所以代碼可以同理德被執行。
nodeJS除了可以在浏覽器端顯示結果之外,還可以直接在控制台輸出。
nodeJS的特點
nodeJS主要有非阻塞、基於事件驅動、單進程這幾個特點。NodeJS的作者說,他創造NodeJS的目的是為了實現高性能Web服務器,他首先看重的是事件機制和異步IO模型的優越性,而不是JS它更適用於輕量、可伸縮,適於實時數據交互應用。nodeJS內置了很多對象,比如http,fs等,我們可以用它搭建我們的HTTP服務器,在服務器上進行開發。
安裝
對於我自己來說,很少進linux去干活,所以目前只有Windows端的安裝方式。Linux的安裝方式自己網上搜一搜吧..我貼一下別人的
?
1 2 3 4 5 6 7 8 9 先安裝依賴包 sudo apt-get install g++ curl libssl-dev apache2-utils sudo apt-get install git-core then git clone git://github.com/joyent/node.git cd node ./configure make sudo make install聽說要注意Python版本的問題,建議2.6+的版本,低版本會出現Node安裝錯誤,
查詢Python版本可在終端中輸入:pyhton -v
Windows下
安裝很簡單,上官網,把最新版本的msi文件下載下來,直接安裝~可以修改路徑。
一路下去無阻礙
安裝成功之後最新版本的默認已經幫你放進系統路徑裡邊去了,不必管了。
之後可以到開始菜單裡邊找到nodeJS打開其命令行進入,默認是進入C盤的,一般還是切換到安裝路徑所在盤,比如我的是E盤
看nodeJS是否安裝成功,查看其版本號 node -v
然後簡單地測試一下,先輸入node命令,然後直接控制台輸入console.log("hello");
因為console.log方法實際上是有返回值的,這裡沒有給他返回,所以第二個就是undefined
再來測試一下,這次我們要看見 Hello World !
在安裝路徑下(比如我是E:Program Filesnodejs)新建一個main.js 文件,輸入
?
1 2 3 4 5 6 var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello Worldn'); }).listen(3000, "127.0.0.1"); console.log('Server running at http://127.0.0.1:3000/');然後在裡邊輸入 node main.js 執行(一般node裡邊退出就是按一次或兩次 Ctrl+C ) ,這時服務器就已經搭建好了~
浏覽器中輸入其中的地址:http://localhost:3000
我們的Hello World 出來了~
然後先來解釋一下這小段代碼。
var http = require('http');上面說到了,http是nodeJS裡邊內置的對象模塊,我們使用require這種方式把它引進來(對象模塊一般就是這麼引入的,我們也可以自己建立自己的模塊,然後將它們引入,之後再提到)。
然後http現在這個對象模塊有一個方法是,http.createServer(),這個方法創建一個服務之後再監聽一個地址:http.createServer().listen(port,ip)
從而搭建了一個服務器。
createServer()裡邊有一個匿名函數,主要就是用來處理相關信息了。req是請求request,res是回復response。req一般用於請求階段的解析處理等,比如常見的get中的地址欄url字符的處理。res一般用於收到請求後相應的操作,比如寫響應頭響應體渲染頁面等等。
在這裡,res.writeHead(200, {'Content-Type': 'text/plain'});就相當於寫了個響應頭,res.end('Hello Worldn');相當於寫了個響應體。
nodeJS提供了很多內置對象方法,比如http,fs,EventEmitter,url等等
這些東西的使用建議參考官方文檔
或者taobao建立的平台CNodejs,去裡邊逛逛吧
還有這個7天學會nodeJS
基本的HTTP服務器搭建就是這樣了,下面介紹node強大的工具npm(node packages manager,包管理工具)。
它主要用於管理我們的包,下載安裝包或者卸載包等等。
舊版本的node需要自個去下載安裝,不過新版本的已經集成了。所以直接在這裡輸入npm -v 查看它的版本吧~
npm安裝方式一般說來有兩種,全局或者本地
好那我們就先來體驗下,裝個express框架吧。
(express.js是nodejs的一個MVC開發框架,並且支持jade,ejs等多種模板)
我們可以使用兩種方式安裝:
全局安裝:npm install --g express .(我發現--g或者-g皆可)這種方式會把包安裝到全局路徑裡邊,一般是C盤的npm/node_modules/下邊
哇哦....
不要在意那些錯誤..
接下來用我想express -V(大寫的)查看它的版本吧
有些朋友可能會遇到錯誤,這裡貼個某網友的的~
解決方式如其所說:新版本將命令工具分家了,所以先另外再安裝它npm install -g express-generator
我說過了,不要在意上面那些細節..O_O
好了,現在我們來試試express ?
還是那個main.js 我們把它改成這樣:
?
1 2 3 4 5 6 7 8 9 10 11 12 var express = require("express"); //var app = express.createServer(); // 在新版本已經不兼容了,所以直接用下面那個 var app = express(); // 或者直接 var app= require("express")(); var port = 3000; var ip = "127.0.0.1"; app.listen(port,ip);// ip 這個參數可不寫,默認本地 app.get('/',function(req,res){ res.send("Hello Worldn"); }); console.log("start express servern");如上所示,新版本可能會報錯沒那個方法
express封裝了http,所以可以直接使用它定義的方法了
然後浏覽器輸入http://localhost