Node.js是一個(gè)事件驅(qū)動(dòng)的,異步的JavaScript運(yùn)行時(shí)。它輕量,高效,基于Chrome的V8引擎。其設(shè)計(jì)目標(biāo)是為了構(gòu)建高并發(fā)可擴(kuò)展的Web程序或服務(wù)。
拋開JavaScript語言本身不談,因?yàn)榕上岛驼Z言一直是寫代碼的手藝人之間無休止的爭論,我們首先來體驗(yàn)下用Node.js從安裝到實(shí)現(xiàn)一個(gè)Web Service的Hello world究竟有多么簡單,請自行對比傳統(tǒng)的Web Service(包括Rails, Python的框架)開發(fā)框架從安裝到寫一個(gè)能運(yùn)行起來一個(gè)Hello World的過程。
安裝Node.js
如果你在Mac或者Windows上開發(fā),Node.js官網(wǎng)提供了二進(jìn)制安裝包,雙擊一路Next即可。
如果你用Linux系統(tǒng)(以CentOS 6.x為例,其他發(fā)行版有略微差異,具體安裝方法參見這里)可以通過執(zhí)行這兩條命令來安裝:
curl -sL https://rpm.nodesource.com/setup_6.x | bash -
yum install -y nodejs
選擇一個(gè)趁手的編輯器
話說工欲善其事,必先利其器…其實(shí)真實(shí)的情況是,相比配置Java的開發(fā)環(huán)境(不敢對比PHP,因?yàn)镻HP是最好的語言),這里的篇幅實(shí)在太少,以至于我要把編輯器的選擇獨(dú)立作為一節(jié)。
言歸正傳,無論你是在Windows,Mac下還是Linux下我都推薦Sublime Text,甚至vim的重度用戶也能從中找到歸屬感(Sublime Text能夠設(shè)置使用vim的鍵盤方式操作)。當(dāng)然如果你有自己非常趁手的編輯器那就另當(dāng)別論了。如果你覺得Sublime Text不順手,還可以試試其他我覺得不錯(cuò)的編輯器:VS Code(Microsoft出品,具有強(qiáng)大的代碼自動(dòng)補(bǔ)齊功能),Brackets。
Hello world
新建一個(gè)文本文件,取名server.js,并復(fù)制以下內(nèi)容到server.js中。
const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer(function(req, res) {
res.end('Hello, World!\n');
});
server.listen(port, hostname, function() {
console.log("Server is running at %s:%s", hostname, port);
});
在命令行中運(yùn)行node server.js,可以看到
Server running at 127.0.0.1:3000
之后在瀏覽器中訪問http://127.0.0.1:3000/ 就能看到Hello World了。

整個(gè)過程不需要安裝和配置額外的Web Server,也不需要配置各種環(huán)境變量,即寫即用。
下一篇文章中我們將利用Express.js(一個(gè)基于Node.js web框架)來搭建一個(gè)符合生產(chǎn)運(yùn)行的一個(gè)RESTful Web Service。