国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

使用Node.js寫一個(gè)簡(jiǎn)單的api接口

singerye / 2292人閱讀

摘要:它是當(dāng)中處理文件的模塊,首先引入可以使用來(lái)讀取文件回調(diào)函數(shù)有兩個(gè)參數(shù),其中是文件的內(nèi)容,以二進(jìn)制形式返回。

引入Http模塊

默認(rèn)你已經(jīng)安裝了Node.js
Node當(dāng)中內(nèi)置了Http模塊;
可以使用

var http= require("http");

引入http模塊;

Hello world

用Node.js實(shí)現(xiàn)一個(gè)HTTP服務(wù)器程序非常簡(jiǎn)單。我們實(shí)現(xiàn)一個(gè)最簡(jiǎn)單的Web程序,
它對(duì)于所有請(qǐng)求,都返回Hello world!,新建一個(gè)文件夾apiDemo 在里面新建一個(gè)server.js寫入:

// 導(dǎo)入http模塊:
var http = require("http");
// 創(chuàng)建http server,并傳入回調(diào)函數(shù):
var server = http.createServer(function (request, response) {
    // 回調(diào)函數(shù)接收request和response對(duì)象,
    // 獲得HTTP請(qǐng)求的method和url:
    console.log(request.method + ": " + request.url);
    // 將HTTP響應(yīng)200寫入response, 同時(shí)設(shè)置Content-Type: text/html:
    response.writeHead(200, {"Content-Type": "text/html"});
    // 將HTTP響應(yīng)的HTML內(nèi)容寫入response:
    response.end("Hello world!");
});

// 讓服務(wù)器監(jiān)聽(tīng)8080端口:
server.listen(8080);

console.log("Server is running at http://127.0.0.1:8080/");

然后在當(dāng)前目錄命令提示符下(cmd等)運(yùn)行, 輸入:

node server.js

然后打開(kāi)瀏覽器輸入:http://127.0.0.1:8080/ 就可以看到:

同時(shí)可以看到命令行中有打印的信息:

GET: /
GET: /favicon.ico

主要需要了解的是:

http.createServer(function(request, response){}) 

它的作用是創(chuàng)建一個(gè)http服務(wù),里面?zhèn)饕粋€(gè)回調(diào)函數(shù),函數(shù)中包含兩個(gè)參數(shù)分別是(request,response)。
其中request是請(qǐng)求對(duì)象,response是響應(yīng)對(duì)象。
可以根據(jù)request對(duì)象拿到請(qǐng)求頭的一些信息,如: request.url--返回請(qǐng)求路徑
響應(yīng)成功后:
response.writeHead()————發(fā)送一個(gè)響應(yīng)頭給請(qǐng)求
response.end("xxx")————響應(yīng)成功 返回xxx
參考 Nodez中文網(wǎng)-HTTP

路由

我們是想當(dāng)訪問(wèn)http://127.0.0.1:8080/的時(shí)候返回當(dāng)前目錄的index.html。
也就是說(shuō)當(dāng)request.url === "/"true時(shí)就可以確定當(dāng)前請(qǐng)求的是根目錄了,

var url = request.url;
console.log(url);
// "/"

我們能創(chuàng)建一個(gè)服務(wù),并且能使用response.end("Hello world!");返回“Hello world!”。如果想返回一個(gè)文件則需要用到Node.js的一個(gè)模塊了——fs 文件系統(tǒng)
它是Node當(dāng)中處理文件的模塊,首先引入:

var fs= require("fs");

可以使用fs.readFile()來(lái)讀取文件

fs.readFile("./index.html", function(err, data)  {
  if (err) throw err;
  console.log(data);
// 
});

回調(diào)函數(shù) 有兩個(gè)參數(shù) (err, data),其中 data 是文件的內(nèi)容,以二進(jìn)制形式返回。

然后我們就可以編寫代碼了,當(dāng)訪問(wèn)根目錄時(shí),返回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("錯(cuò)誤");
    }
});
server.listen(8080, "127.0.0.1");

然后在當(dāng)前目錄下新建index.html,在這里我們可以寫一個(gè)ajax請(qǐng)求,一會(huì)我們點(diǎn)擊按鈕來(lái)實(shí)現(xiàn)ajax請(qǐng)求一組數(shù)據(jù):

 
看不到看不到

這段代碼是點(diǎn)擊按鈕的時(shí)候 會(huì)向/data發(fā)起一個(gè)ajsx請(qǐng)求,

實(shí)現(xiàn)簡(jiǎn)單的API接口

既然能訪問(wèn)根目錄時(shí)可以返回html文件,那我們可以自己設(shè)定一個(gè)url,當(dāng)請(qǐng)求這個(gè)url是我們就給它返回一組json數(shù)據(jù)。正常來(lái)講這些數(shù)據(jù)應(yīng)該是從數(shù)據(jù)庫(kù)讀取的,在這里只模擬一組json數(shù)據(jù),在當(dāng)前目錄新建一個(gè)data.json

{"name": "尼古拉丁 * 趙四"}

所以當(dāng)前的目錄結(jié)構(gòu)是:

然后我們可以在server.js中判斷一下,當(dāng)請(qǐng)求的url是/data時(shí),則返回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;
            }
        })
    }

然后打開(kāi)瀏覽器 http://127.0.0.1:8080 后,就會(huì)出現(xiàn)index.html頁(yè)面,點(diǎn)擊出現(xiàn)的按鈕就會(huì)觸發(fā)一個(gè)對(duì) /data的ajax請(qǐng)求,當(dāng)server.js接受到請(qǐng)求后,就會(huì)判斷url === "/data",然后它就會(huì)吧 data.json返回給我們。

最后的實(shí)現(xiàn)是點(diǎn)擊按鈕出現(xiàn)尼古拉丁 * 趙四
GItHub源碼:node-apiDemo
參考:
廖雪峰-http詳解
Node-fs

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/100043.html

相關(guān)文章

  • 從零開(kāi)始打造個(gè)人專屬命令行工具集——yargs完全指南

    摘要:自阮大神的文章發(fā)布以來(lái),有了一些改動(dòng),添加有很多有用的功能,特別是這個(gè)功能,對(duì)打造命令行工具集合非常有用,所以寫一個(gè)新版本的教程還是有必要的。 前言 使用命令行程序?qū)Τ绦騿T來(lái)說(shuō)很常見(jiàn),就算是前端工程師或者開(kāi)發(fā)gui的,也需要使用命令行來(lái)編譯程序或者打包程序 熟練使用命令行工具能極大的提高開(kāi)發(fā)效率,linux自帶的命令行工具都非常的有用,但是這些工具都是按照通用需求開(kāi)發(fā)出來(lái)的,如果有一些...

    wanghui 評(píng)論0 收藏0
  • api 接口管理工具

    摘要:接口管理工具大致分為線上工具和自建工具。安裝其他工具上面講的,不管是線上工具還是自建工具,都是接口集成工具,主要是為了提供數(shù)據(jù)功能。類似網(wǎng)易云筆記印象筆記的筆記管理工具。 api 接口管理工具 現(xiàn)在,Web 應(yīng)用的前后端分離事實(shí)上已經(jīng)成為了大家都認(rèn)可的一種開(kāi)發(fā)方式,前后端分離之后,前端與后端都用接口(api)來(lái)溝通,這就需要我們做好 API 接口管理,所以,這次來(lái)聊聊 API 接口管理...

    marser 評(píng)論0 收藏0
  • api 接口管理工具

    摘要:接口管理工具大致分為線上工具和自建工具。安裝其他工具上面講的,不管是線上工具還是自建工具,都是接口集成工具,主要是為了提供數(shù)據(jù)功能。類似網(wǎng)易云筆記印象筆記的筆記管理工具。 api 接口管理工具 現(xiàn)在,Web 應(yīng)用的前后端分離事實(shí)上已經(jīng)成為了大家都認(rèn)可的一種開(kāi)發(fā)方式,前后端分離之后,前端與后端都用接口(api)來(lái)溝通,這就需要我們做好 API 接口管理,所以,這次來(lái)聊聊 API 接口管理...

    wuyumin 評(píng)論0 收藏0
  • 【全文】狼叔:如何正確學(xué)習(xí)Node.js

    摘要:感謝大神的免費(fèi)的計(jì)算機(jī)編程類中文書(shū)籍收錄并推薦地址,以后在倉(cāng)庫(kù)里更新地址,聲音版全文狼叔如何正確的學(xué)習(xí)簡(jiǎn)介現(xiàn)在,越來(lái)越多的科技公司和開(kāi)發(fā)者開(kāi)始使用開(kāi)發(fā)各種應(yīng)用。 說(shuō)明 2017-12-14 我發(fā)了一篇文章《沒(méi)用過(guò)Node.js,就別瞎逼逼》是因?yàn)橛腥嗽谥跎虾贜ode.js。那篇文章的反響還是相當(dāng)不錯(cuò)的,甚至連著名的hax賀老都很認(rèn)同,下班時(shí)讀那篇文章,竟然坐車的還坐過(guò)站了。大家可以很...

    Edison 評(píng)論0 收藏0
  • 【全文】狼叔:如何正確學(xué)習(xí)Node.js

    摘要:感謝大神的免費(fèi)的計(jì)算機(jī)編程類中文書(shū)籍收錄并推薦地址,以后在倉(cāng)庫(kù)里更新地址,聲音版全文狼叔如何正確的學(xué)習(xí)簡(jiǎn)介現(xiàn)在,越來(lái)越多的科技公司和開(kāi)發(fā)者開(kāi)始使用開(kāi)發(fā)各種應(yīng)用。 說(shuō)明 2017-12-14 我發(fā)了一篇文章《沒(méi)用過(guò)Node.js,就別瞎逼逼》是因?yàn)橛腥嗽谥跎虾贜ode.js。那篇文章的反響還是相當(dāng)不錯(cuò)的,甚至連著名的hax賀老都很認(rèn)同,下班時(shí)讀那篇文章,竟然坐車的還坐過(guò)站了。大家可以很...

    fengxiuping 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<