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/');

JavaScript字符串替換方法詳解及常見問題解答 本文將探討兩種在JavaScript中替換字符串字符的方法:在JavaScript代碼內部替換和在網頁HTML內部替換。 在JavaScript代碼內部替換字符串 最直接的方法是使用replace()方法: str = str.replace("find","replace"); 該方法僅替換第一個匹配項。要替換所有匹配項,需使用正則表達式並添加全局標誌g: str = str.replace(/fi

因此,在這裡,您準備好了解所有稱為Ajax的東西。但是,到底是什麼? AJAX一詞是指用於創建動態,交互式Web內容的一系列寬鬆的技術。 Ajax一詞,最初由Jesse J創造

本文討論了在瀏覽器中優化JavaScript性能的策略,重點是減少執行時間並最大程度地減少對頁面負載速度的影響。

本文討論了使用瀏覽器開發人員工具的有效JavaScript調試,專注於設置斷點,使用控制台和分析性能。

將矩陣電影特效帶入你的網頁!這是一個基於著名電影《黑客帝國》的酷炫jQuery插件。該插件模擬了電影中經典的綠色字符特效,只需選擇一張圖片,插件就會將其轉換為充滿數字字符的矩陣風格畫面。快來試試吧,非常有趣! 工作原理 插件將圖片加載到畫布上,讀取像素和顏色值: data = ctx.getImageData(x, y, settings.grainSize, settings.grainSize).data 插件巧妙地讀取圖片的矩形區域,並利用jQuery計算每個區域的平均顏色。然後,使用

本文將引導您使用jQuery庫創建一個簡單的圖片輪播。我們將使用bxSlider庫,它基於jQuery構建,並提供許多配置選項來設置輪播。 如今,圖片輪播已成為網站必備功能——一圖胜千言! 決定使用圖片輪播後,下一個問題是如何創建它。首先,您需要收集高質量、高分辨率的圖片。 接下來,您需要使用HTML和一些JavaScript代碼來創建圖片輪播。網絡上有很多庫可以幫助您以不同的方式創建輪播。我們將使用開源的bxSlider庫。 bxSlider庫支持響應式設計,因此使用此庫構建的輪播可以適應任何

數據集對於構建API模型和各種業務流程至關重要。這就是為什麼導入和導出CSV是經常需要的功能。在本教程中,您將學習如何在Angular中下載和導入CSV文件


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

WebStorm Mac版
好用的JavaScript開發工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Dreamweaver CS6
視覺化網頁開發工具

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。