Nodejs 入門秘籍,搭一個最簡單的web伺服器。(菜鳥的你也能秒懂),nodejsweb

來源:互聯網
上載者:User

Nodejs 入門秘籍,搭一個最簡單的web伺服器。(菜鳥的你也能秒懂),nodejsweb
心血來潮,總結了一個Nodejs入門秘籍。看了你就想學NodeJs了。
一、簡單介紹nodejs
初學nodejs  ,直接上簡單一實例。先簡單說明一下:nodejs ,nodejs相當於伺服器端的 可以輕易搭建一個伺服器端。
nodejs是用C++開發的一種運行於伺服器端的語言,可以寫網站背景程式,可以做服務端應用開發,文法和JAVASCRIPT一樣,會JS,就是會NodeJS,區別於,普通JS是指令碼運行用戶端,而NODEJS中的JS是運行於伺服器端,NODEJS的作用相當PHP,ASP等語言。
Nodejs最大的特性之一:非阻塞(事件驅動IO),這也讓nodejs的效能有不小的提升。

傳統的web server多為基於執行緒模式。你啟動Apache或者什麼server,它開始等待接受串連。當收到一個串連,server保持串連連通直到頁面或者什麼事務請求完成。如果他需要花幾微妙時間去讀取磁碟或者訪問資料庫,web server就阻塞了IO操作(這也被稱之為阻塞式IO).想提高這樣的web server的效能就只有啟動更多的server執行個體。

 相反的,Node.Js使用事件驅動模型,當web server接收到請求,就把它關閉然後進行處理,然後去服務下一個web請求。當這個請求完成,它被放回處理隊列,當到達隊列開頭,這個結果被返回給使用者。這個模型非常高效可擴充性非常強,因為webserver一直接受請求而不等待任何讀寫操作。(這也被稱之為非阻塞式IO或者事件驅動IO)\


考慮下面這個過程:

1,你用瀏覽器訪問nodejs伺服器上的"/about.html"

2,nodejs伺服器接收到你的請求,調用一個函數從磁碟上讀取這個檔案。

3,這段時間,nodejs webserver在服務後續的web請求。

4,當檔案讀取完畢,有一個回呼函數被插入到nodejs的服務隊列中。

5,nodejs webserver運行這個函數,實際上就是渲染(render)了about.html頁面返回給你的瀏覽器。

好像就節省了幾微秒時間,但是這很重要!特別是對於需要相應大量使用者的web server。



下面我們來構建一個簡單一實例:


準備工作:在linux上安裝好nodejs(內建npm包管理器)。npm是nodejs的包管理器,後續需要用到的比如express,socket.io等模組都是通過npm 下載。
npm init 產生一個包管理檔案:package.json.
npm install express --save  安裝express    --save  可以自動更新package.json 檔案,將express 作為項目以來添加到package.json裡面。同時npm會自動建立node_modules檔案夾,存放各種包。

Express 是一個簡潔而靈活的 node.js Web應用程式框架, 提供一系列強大特性協助你建立各種Web應用。Express架構建立在node.js內建的http模組上。
建立app.js ,用於搭建簡單的web伺服器。

$vim app.js
var express = require('express')    //載入express模組
var app = express()
var port = process.env.PORT || 3000  //監聽的連接埠
app.use(express.static(__dirname + '/static'))
app.use(function (req , res){
  res.sendfile('./static/index.html')

})


app.listen(port,function(){
console.log('TechNode is on port' + port + '!' ) 
})


將靜態檔案放在static目錄下;在static目錄下還會放index.html檔案,它將會作為整個應用的啟動頁面。除了靜態檔案的請求以外,其他所有的HTTP請求,我們都會輸出index.html檔案,服務端不關心路由,所有的路由邏輯可以都交給在瀏覽器端的Angular.js(另一神器,正在學習)去處理。

如果想查看伺服器端的請求日誌,加上下面這兩句即可,但是加之前別忘了 npm  install morgan --save哦:

var logger = require('morgan')

app.use(logger('dev'));

接下來,我們隨便在static目錄下建個index.html,裡面加點內容,我們就可以在敲入  $node app.js

便可以在瀏覽器端 瀏覽 :http://伺服器Ip:3000/ 。

讓我們回顧下,整個目錄下就只由這幾部分組成:

l@ubuntu-temp:~/test27$ ls

app.js  node_modules  package.json  static

很簡單對不對。nodejs的學習之路這就開始了!學好nodejs主要要學習他的核心架構,模組載入機制,路由處理,非同步編程機制,http架構==。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.