摘要:它是當中處理文件的模塊,首先引入可以使用來讀取文件回調(diào)函數(shù)有兩個參數(shù),其中是文件的內(nèi)容,以二進制形式返回。
引入Http模塊
默認你已經(jīng)安裝了Node.js
Node當中內(nèi)置了Http模塊;
可以使用
var http= require("http");
引入http模塊;
Hello world用Node.js實現(xiàn)一個HTTP服務器程序非常簡單。我們實現(xiàn)一個最簡單的Web程序,
它對于所有請求,都返回Hello world!,新建一個文件夾apiDemo 在里面新建一個server.js寫入:
// 導入http模塊: var http = require("http"); // 創(chuàng)建http server,并傳入回調(diào)函數(shù): var server = http.createServer(function (request, response) { // 回調(diào)函數(shù)接收request和response對象, // 獲得HTTP請求的method和url: console.log(request.method + ": " + request.url); // 將HTTP響應200寫入response, 同時設置Content-Type: text/html: response.writeHead(200, {"Content-Type": "text/html"}); // 將HTTP響應的HTML內(nèi)容寫入response: response.end("Hello world!"); }); // 讓服務器監(jiān)聽8080端口: server.listen(8080); console.log("Server is running at http://127.0.0.1:8080/");
然后在當前目錄命令提示符下(cmd等)運行, 輸入:
node server.js
然后打開瀏覽器輸入:http://127.0.0.1:8080/ 就可以看到:
同時可以看到命令行中有打印的信息:
GET: / GET: /favicon.ico
主要需要了解的是:
http.createServer(function(request, response){})
它的作用是創(chuàng)建一個http服務,里面?zhèn)饕粋€回調(diào)函數(shù),函數(shù)中包含兩個參數(shù)分別是(request,response)。
其中request是請求對象,response是響應對象。
可以根據(jù)request對象拿到請求頭的一些信息,如: request.url--返回請求路徑
響應成功后:
response.writeHead()————發(fā)送一個響應頭給請求
response.end("xxx")————響應成功 返回xxx
參考 Nodez中文網(wǎng)-HTTP
我們是想當訪問http://127.0.0.1:8080/的時候返回當前目錄的index.html。
也就是說當request.url === "/"是true時就可以確定當前請求的是根目錄了,
var url = request.url; console.log(url); // "/"
我們能創(chuàng)建一個服務,并且能使用response.end("Hello world!");返回“Hello world!”。如果想返回一個文件則需要用到Node.js的一個模塊了——fs 文件系統(tǒng)。
它是Node當中處理文件的模塊,首先引入:
var fs= require("fs");
可以使用fs.readFile()來讀取文件
fs.readFile("./index.html", function(err, data) { if (err) throw err; console.log(data); //});
回調(diào)函數(shù) 有兩個參數(shù) (err, data),其中 data 是文件的內(nèi)容,以二進制形式返回。
然后我們就可以編寫代碼了,當訪問根目錄時,返回index.html文件
var http= require("http"); var fs= require("fs"); var server= http.createServer(function(request, response){ var url = request.url; if(url === "/"){ fs.readFile("./index.html", function(err, data){ if(!err){ response.writeHead(200, {"Content-Type": "text/html;charset=UTF-8"}); response.end(data) }else{ throw err; } }); }else{ console.log("錯誤"); } }); server.listen(8080, "127.0.0.1");
然后在當前目錄下新建index.html,在這里我們可以寫一個ajax請求,一會我們點擊按鈕來實現(xiàn)ajax請求一組數(shù)據(jù):
看不到看不到
這段代碼是點擊按鈕的時候 會向/data發(fā)起一個ajsx請求,
實現(xiàn)簡單的API接口既然能訪問根目錄時可以返回html文件,那我們可以自己設定一個url,當請求這個url是我們就給它返回一組json數(shù)據(jù)。正常來講這些數(shù)據(jù)應該是從數(shù)據(jù)庫讀取的,在這里只模擬一組json數(shù)據(jù),在當前目錄新建一個data.json:
{"name": "尼古拉丁 * 趙四"}
所以當前的目錄結(jié)構(gòu)是:
然后我們可以在server.js中判斷一下,當請求的url是/data時,則返回data.json:
if(url === "/data"){ fs.readFile("./data.json", function(err, data){ if(!err){ response.writeHead(200, {"Content-Type": "application/json"}); response.end(data); }else{ throw err; } }) }
然后打開瀏覽器 http://127.0.0.1:8080 后,就會出現(xiàn)index.html頁面,點擊出現(xiàn)的按鈕就會觸發(fā)一個對 /data的ajax請求,當server.js接受到請求后,就會判斷url === "/data",然后它就會吧 data.json返回給我們。
最后的實現(xiàn)是點擊按鈕出現(xiàn)尼古拉丁 * 趙四,
GItHub源碼:node-apiDemo
參考:
廖雪峰-http詳解
Node-fs
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/100043.html
摘要:自阮大神的文章發(fā)布以來,有了一些改動,添加有很多有用的功能,特別是這個功能,對打造命令行工具集合非常有用,所以寫一個新版本的教程還是有必要的。 前言 使用命令行程序?qū)Τ绦騿T來說很常見,就算是前端工程師或者開發(fā)gui的,也需要使用命令行來編譯程序或者打包程序 熟練使用命令行工具能極大的提高開發(fā)效率,linux自帶的命令行工具都非常的有用,但是這些工具都是按照通用需求開發(fā)出來的,如果有一些...
摘要:接口管理工具大致分為線上工具和自建工具。安裝其他工具上面講的,不管是線上工具還是自建工具,都是接口集成工具,主要是為了提供數(shù)據(jù)功能。類似網(wǎng)易云筆記印象筆記的筆記管理工具。 api 接口管理工具 現(xiàn)在,Web 應用的前后端分離事實上已經(jīng)成為了大家都認可的一種開發(fā)方式,前后端分離之后,前端與后端都用接口(api)來溝通,這就需要我們做好 API 接口管理,所以,這次來聊聊 API 接口管理...
摘要:接口管理工具大致分為線上工具和自建工具。安裝其他工具上面講的,不管是線上工具還是自建工具,都是接口集成工具,主要是為了提供數(shù)據(jù)功能。類似網(wǎng)易云筆記印象筆記的筆記管理工具。 api 接口管理工具 現(xiàn)在,Web 應用的前后端分離事實上已經(jīng)成為了大家都認可的一種開發(fā)方式,前后端分離之后,前端與后端都用接口(api)來溝通,這就需要我們做好 API 接口管理,所以,這次來聊聊 API 接口管理...
摘要:感謝大神的免費的計算機編程類中文書籍收錄并推薦地址,以后在倉庫里更新地址,聲音版全文狼叔如何正確的學習簡介現(xiàn)在,越來越多的科技公司和開發(fā)者開始使用開發(fā)各種應用。 說明 2017-12-14 我發(fā)了一篇文章《沒用過Node.js,就別瞎逼逼》是因為有人在知乎上黑Node.js。那篇文章的反響還是相當不錯的,甚至連著名的hax賀老都很認同,下班時讀那篇文章,竟然坐車的還坐過站了。大家可以很...
摘要:感謝大神的免費的計算機編程類中文書籍收錄并推薦地址,以后在倉庫里更新地址,聲音版全文狼叔如何正確的學習簡介現(xiàn)在,越來越多的科技公司和開發(fā)者開始使用開發(fā)各種應用。 說明 2017-12-14 我發(fā)了一篇文章《沒用過Node.js,就別瞎逼逼》是因為有人在知乎上黑Node.js。那篇文章的反響還是相當不錯的,甚至連著名的hax賀老都很認同,下班時讀那篇文章,竟然坐車的還坐過站了。大家可以很...
閱讀 1689·2021-11-23 09:51
閱讀 2701·2021-11-22 09:34
閱讀 1335·2021-10-14 09:43
閱讀 3676·2021-09-08 09:36
閱讀 3220·2019-08-30 12:57
閱讀 2042·2019-08-30 12:44
閱讀 2532·2019-08-29 17:15
閱讀 3026·2019-08-29 16:08