零基礎之Node.js搭建API服務器
這篇文章寫給那些Node.js零基礎,但希望自己動手實現服務器API的前端開發者,嘗試幫大家打開一扇門。
HTTP服務器實現原理
HTTP服務器之所以能提供前端使用的API,其實現原理是服務器保持監聽計算機的某個端口(通常是80),等待客戶端請求,當請求到達并經過一系列處理后,服務器發送響應數據給到前端。
平時大家通過Ajax調用API,即是發起一次請求,經過服務器處理后,得到結果,然后再進行前端處理。如今使用高級編程語言,要實現服務器那部分功能已經變得非常簡單,接下來我們了解一下使用Node.js如何實現。
什么是Node.js?它可以做什么?
Node.js是一個JavaScript的運行時(runtime),它提供了大量用JS與操作系統打交道的API,通過這些API,我們可以調用本地程序、讀寫磁盤、監聽端口、發起網絡請求等,這足以開發出一個功能完善的Server。
前期準備
簡單介紹完Node.js,開始寫代碼之前,我們需要安裝Node.js,安裝詳細過程就不說明了,請大家Google或者百度。不同系統安裝過程不一樣,如果是Linux、Mac,會相對順利且遇到問題的可能性較低。
判斷安裝成功與否,windows下,在cmd中執行node -v,Linux、Mac下,在shell中執行node -v,正常輸出版本號說明安裝成功。
tips:
windows如果提示命令未找到,可能是未配置環境變量
實現簡單的Server
Node.js安裝成功,我們找個地方新建目錄my-server作為我們的存放代碼的地方,接下來所有的代碼都在該目錄下。首先,在my-server的目錄下新建文件index.js,用如下代碼實現一個簡單的Server:
// index.js// 通過require獲取兩個node內置模塊const http = require('http');const nUrl = require('url');// '127.0.0.1'表明只有本機可訪問,'0.0.0.0'表示所有人可訪問const hostname = '127.0.0.1';const port = 3000;// 通過http.createServer獲取一個server實例// 其中(req, res) => {},在服務器每次接收到請求時都會被執行const server = http.createServer((req, res) => { let method = req.method; // 客戶端請求方法 let url = nUrl.parse(req.url); // 將請求url字符串轉換為node的url對象 // 如果客戶端GET請求'/',會執行這個分支里面的邏輯 if (method === 'GET' && url.pathname === '/') { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World'); return; } // 如果客戶端GET請求'/api/user',會執行這個分支里面的邏輯 if (method === 'GET' && url.pathname === '/api/user') { res.statusCode = 200; res.setHeader('Content-Type', 'application/json'); res.end(JSON.stringify({ code: 0, msg: '', result: { username: 'shasharoman' } })); return; } // 沒有匹配其他分支的話,執行以下邏輯 res.statusCode = 404; res.setHeader('Content-Type', 'text/plain'); res.end('Not Found');});// server開始監聽,等待請求到來server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`);});
新聞熱點
疑難解答
圖片精選