1:安裝Node.js
使用MSI文件,並按照提示安裝node.js,默認情況下,安裝程序將 Node.js 發行到 C:\Program Files\nodejs. 但這里我們需要修改安裝路徑到:D:\yiibai_worksp\nodejs,並將 D:\yiibai_worksp\nodejs 目錄添加到Window系統的PATH環境變量中。重新啟動打開命令提示符,以使更改生效。
第一步:雙擊下載的 “node-v0.12.7-x64.msi" 文件,出現提示安裝界面:
第二步:選擇安裝目錄,這里安裝在目錄 D:\yiibai_worksp\nodejs 中,如下圖:
第三步:選擇安裝的模塊和功能,這里全部安裝,並添加到系統環境變量,如下圖所示:
最后一步:安裝完成!
驗證安裝:執行文件
創建一個js文件名為test.js 在 D:\>yiibai_worksp\nodejs.
File: test.js
console.log("Hello World")
現在運行test.js看到的結果:
D:\yiibai_worksp\nodejs> node test.js
驗證輸出結果:
[小貼士]①:騰訊雲系統默認文件后綴名是隱藏的,導致test.js可能實際上是test.js.txt;注意改掉,很關鍵!
②一些基本的Shell操作:1:cd..回退 2:cd hehe進入文件夾 3:node xx.js 啟動文件
②搭建HTTP服務
下面是個http.js文件,node這個文件就可以啟動監聽
1 // 這是一個簡單的Node HTTP服務器,能處理當前目錄的文件 2 // 並能實現兩種特殊的URL用於測試 3 // 用HTTP://localhost:8000或http://127.0.0.1:8000連接這個服務器 4 5 // 首先加載所有需要用到的模塊 6 var http = require('http'); // Http服務器API 7 var fs = require('fs'); // 用於處理本地文件 8 var server = new http.Server(); // 創建新的HTTP服務器 9 server.listen(8000); // 監聽端口8000 10 11 // 使用on方法注冊時間處理 12 server.on('request', function(request, response) { // 當有request請求的時候觸發處理函數 13 console.log('request'); 14 // 解析請求的URL 15 var url = require('url').parse(request.url); 16 // 特殊URL會讓服務器在發送響應前先等待 17 switch(url.pathname) { 18 case ''||'/' : // 模擬歡迎頁,nodejs是高效流處理的方案,也可以通過配置文件來配置 19 fs.readFile('./index.html', function(err, content){ 20 if(err) { 21 response.writeHead(404, { 'Content-Type':'text/plain; charset="UTF-8"' }); 22 response.write(err.message); 23 response.end(); 24 } else { 25 response.writeHead(200, { 'Content-Type' : 'text/html; charset=UTF-8' }); 26 response.write(content); 27 response.end(); 28 } 29 }); 30 break; 31 case '/test/delay':// 此處用於模擬緩慢的網絡連接 32 // 使用查詢字符串來獲取延遲時長,或者2000毫秒 33 var delay = parseInt(url.query) || 2000; 34 // 設置響應狀態和頭 35 response.writeHead(200, {'Content-type':'text/plain; charset=UTF-8'}); 36 // 立即開始編寫響應主體 37 response.write('Sleeping for' + delay + ' milliseconds...'); 38 // 在之后調用的另一個函數中完成響應 39 setTimeout(function(){ 40 response.write('done.'); 41 response.end(); 42 }, delay); 43 break; 44 case '/test/mirror':// 如果請求是test/mirror,則原文返回它 45 // 響應狀態和頭 46 response.writeHead(200, {'Content-type':'text/plain; charset=UTF-8'}); 47 // 用請求的內容開始編寫響應主體 48 response.write(request.mothod + ' ' + request.url + ' HTTP/' + request.httpVersion + '\r\n'); 49 // 所有的請求頭 50 for (var h in request.headers) { 51 response.write(h + ':' + request.headers[h] + '\r\n'); 52 } 53 response.write('\r\n');// 使用額外的空白行來結束頭 54 // 在這些事件處理程序函數中完成響應 55 // 當請求主體的數據塊完成時,把其寫入響應中 56 request.on('data', function(chunk) { response.write(chunk); }); 57 // 當請求結束時,響應也完成 58 request.on('end', function(chunk){ response.end(); }); 59 break; 60 case '/json' : // 模擬JSON數據返回 61 // 響應狀態和頭 62 response.writeHead(200, {'Content-type':'application/json; charset=UTF-8'}); 63 response.write(JSON.stringify({test:'success'})); 64 response.end(); 65 break; 66 default:// 處理來自本地目錄的文件 67 var filename = url.pathname.substring(1); // 去掉前導'/' 68 var type = getType(filename.substring(filename.lastIndexOf('.')+1)); 69 // 異步讀取文件,並將內容作為單獨的數據模塊傳給回調函數 70 // 對於確實很大的文件,使用流API fs.createReadStream()更好 71 fs.readFile(filename, function(err, content){ 72 if(err) { 73 response.writeHead(404, { 'Content-Type':'text/plain; charset="UTF-8"' }); 74 response.write(err.message); 75 response.end(); 76 } else { 77 response.writeHead(200, { 'Content-Type' : type }); 78 response.write(content); 79 response.end(); 80 } 81 }); 82 break; 83 } 84 85 }); 86 function getType(endTag){ 87 var type=null; 88 switch(endTag){ 89 case 'html' : 90 case 'htm' : 91 type = 'text/html; charset=UTF-8'; 92 break; 93 case 'js' : 94 type = 'application/javascript; charset="UTF-8"'; 95 break; 96 case 'css' : 97 type = 'text/css; charset="UTF-8"'; 98 break; 99 case 'txt' : 100 type = 'text/plain; charset="UTF-8"'; 101 break; 102 case 'manifest' : 103 type = 'text/cache-manifest; charset="UTF-8"'; 104 break; 105 default : 106 type = 'application/octet-stream'; 107 break; 108 } 109 return type; 110 }
③域名解析和IP綁定---騰訊雲好像會自己綁好,但是域名實名認證后才可以生效。我這個認證了半個月- -
④以上步驟做完之后服務器就搭建完成了,監視的端口是8000,比如你的域名是www.hehe.com,那么你需要訪問www.hehe.com:8000就可以訪問到自己的內容了