首頁  >  文章  >  web前端  >  nodejs創建web伺服器之hello world程式_javascript技巧

nodejs創建web伺服器之hello world程式_javascript技巧

WBOY
WBOY原創
2016-05-16 15:43:541020瀏覽

Node.js 最主要的應用是伺服器序。

設計Node.js 的一個主要目的是提供高度可擴展的伺服器環境。這是我們在本章開頭介紹過的Node 和V8 引擎有所區別的地方。 Node 除了用V8 引擎來解析JavaScript 外,還提供了高度優化的應用程式庫,用來提高伺服器效率。比方說,HTTP模組是專為快速非阻塞式HTTP 伺服器而用C 重新編寫的。讓我們來看看Node 採用HTTP 伺服器的「Hello World」經典範例

複製程式碼 程式碼如下:

var http=require('http');//引入核心HTTP模組

/*建立伺服器*/

var server=http.createServer(function(req,res){
  res.writeHead(200,{"Content-type":'text/html'});
  res.end('hello world');
});

/*監聽IP以及連接埠*/

server.listen(8124,'127.0.0.1',function(){
  console.log('服务器创建成成功:127.0.0.1:8124');
});

運行程式碼如下圖

ZXD@ZXD-PC /K/work/learn/nodejs/cvs01
$ node app

伺服器建立成成功:127.0.0.1:8124

這個範例程式碼先透過require 方法把HTTP 函式庫包含到程式中。有許多語言都有包含其他函式庫這一方法,Node 用的是CommonJS 模組風格。

目前需要了解的是,HTTP 函式庫所具有的功能已經賦給了http 物件。

下一步,我們需要一個HTTP 伺服器。 PHP 等其他語言需要在類似Apache 這樣的伺服器中執行,而Node 和它們不同,因為Node 本身就是Web 伺服器。

但這同樣意味著我們需要先建立該伺服器。下一行程式碼呼叫HTTP 模組的一個工廠模式方法
(createServer)來建立新的HTTP 伺服器。新建立的HTTP 伺服器並沒有賦值給任何變量,它只會成為存活在全域範圍內的匿名物件。

我們可以透過鍊式呼叫來初始化伺服器,並告訴它監聽在8124 埠。當呼叫createServer 的時候,我們傳了一個匿名函數作為參數。此函數綁定在新建立伺服器的事件監聽器上進行request 事件處理。訊息事件是JavaScript 和Node 的核心。在這個範例中,每當一個新的存取請求到達Web 伺服器,它都會呼叫我們指定的函數方法來處理。我們稱這類方法為回呼(callback)。因為每當一個事件發生時,我們將回呼監聽此事件的所有函數。

範例二:

由於跑到另一個城市,手頭沒電腦,dom framework不能如期發布,趁此學習一些新東西。這段時期最迫切的需求是尋求一個超輕量的後端來架起我的框架,於是觸爪伸向傳說中的Server-Side Javascrpt。後端JS最有名無疑是Ryan Dahl的node.js,另一個是aptana IDE供應商搞出的jaxer。

先下載node.js,然後解壓縮到E盤,改名為node,然後開始選單輸入cmd,用cd指令切換到nodejs的解壓縮目錄:

第一個例子:hello world。

在node目錄下建立hello.js文件,然後在裡面輸入:

var sys = require("sys"); 
sys.puts("Hello world"); 

然後我們在命名台中輸入指令node hello.js,就能看到命名台輸出結果Hello world。

第二個例子:hello world2。

好了,這次我們試從遊覽器中輸出hello world。在node目錄下建立http.js,然後輸入:

var sys = require("sys"), 
  http = require("http"); 
http.createServer(function(request, response) { 
  response.sendHeader(200, {"Content-Type": "text/html"}); 
  response.write("Hello World!"); 
  response.close(); 
}).listen(8080); 
sys.puts("Server running at http://localhost:8080/"); 

然後我們在命名台中輸入指令node http.js,在瀏覽器輸入http://localhost:8080/

第三個例子:hello world2。

node.js提供一個Buffer類別用來轉換不同編碼的字串。

目前支援三種:'ascii','utf8'與'binary'。詳見這裡

var Buffer = require('buffer').Buffer, 
buf = new Buffer(256), 
len = buf.write('\u00bd + \u00bc = \u00be', 0); 
console.log(len + " bytes: " + buf.toString('utf8', 0, len)); 

第四個例子:hello world3

//synopsis.js 
//synopsis 摘要, 梗概,大纲 
var http = require('http'); 
  
http.createServer(function (request, response) { 
 response.writeHead(200, {'Content-Type': 'text/plain'}); 
 response.end('Hello World\n'); 
}).listen(8124); 
  
console.log('Server running at http://127.0.0.1:8124/'); 

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn