最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Node.js的HTTP模塊、URL模塊與supervisor工具介紹

 更新時(shí)間:2022年06月24日 10:35:08   作者:小旭2021  
這篇文章介紹了Node.js的HTTP模塊、URL模塊與supervisor工具,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

一、Node.js創(chuàng)建第一個(gè)應(yīng)用

如果我們使用 PHP 來(lái)編寫(xiě)后端的代碼時(shí),需要 Apache 或者 Nginx 的 HTTP 服務(wù)器, 來(lái)處理客戶端的請(qǐng)求相應(yīng)。不過(guò)對(duì) Node.js 來(lái)說(shuō),概念完全不一樣了。使用 Node.js 時(shí),我們不僅僅在實(shí)現(xiàn)一個(gè)應(yīng)用,同時(shí)還實(shí)現(xiàn)了整個(gè) HTTP 服務(wù)器。

1、引入 http 模塊

var http = require("http");

2、創(chuàng)建服務(wù)器

接下來(lái)我們使用 http.createServer() 方法創(chuàng)建服務(wù)器,并使用 listen 方法綁定 8888 端口。函數(shù)通過(guò) request, response 參數(shù)來(lái)接收和響應(yīng)數(shù)據(jù)。

/*
 如果我們使用PHP來(lái)編寫(xiě)后端的代碼時(shí),需要Apache 或者 Nginx 的HTTP 服務(wù)器,并配上 mod_php5 模塊和php-cgi,來(lái)處理客戶端的請(qǐng)求相應(yīng)。
 不過(guò)對(duì) Node.js 來(lái)說(shuō),概念完全不一樣了。使用 Node.js 時(shí),我們不僅僅 在實(shí)現(xiàn)一個(gè)應(yīng)用,同時(shí)還實(shí)現(xiàn)了整個(gè) HTTP 服務(wù)器。
 */
 
//1.引入http模塊
var http=require('http');
//2.用http模塊創(chuàng)建服務(wù)
    /*
     * request 獲取url信息
     * response 瀏覽器返回響應(yīng)信息
     */
http.createServer(function(request,response){
// 發(fā)送 HTTP 頭部
// HTTP 狀態(tài)值: 200 : OK
//設(shè)置 HTTP 頭部,狀態(tài)碼是 200,文件類型是 html,字符集是 UTF-8
response.writeHead(200,{"Content-Type":"text/html;charset=UTF-8"});
// 發(fā)送響應(yīng)數(shù)據(jù)
response.end('你好 nodejs');
}).listen(8001);
// 終端打印如下信息
console.log('Server running at http://127.0.0.1:8001/');

3.運(yùn)行程序

用命令行切換到程序?qū)?yīng)目錄。通過(guò)node 命令運(yùn)行程序。

瀏覽器運(yùn)行

你會(huì)發(fā)現(xiàn),我們本地寫(xiě)一個(gè) js,打死都不能直接拖入瀏覽器運(yùn)行,但是有了 node,我們?nèi)魏我粋€(gè) js 文件,都可以通過(guò) node 來(lái)運(yùn)行。也就是說(shuō),node 就是一個(gè) js 的執(zhí)行環(huán)境。

二、HTTP 模塊、URL 模塊

Node.js 中,將很多的功能,劃分為了一個(gè)個(gè) module(模塊)。 Node.js 中的很多功能都是通過(guò)模塊實(shí)現(xiàn)。

2.1、HTTP模塊的使用

//引用模塊
var http = require("http");
//創(chuàng)建一個(gè)服務(wù)器,回調(diào)函數(shù)表示接收到請(qǐng)求之后做的事情
var server = http.createServer(function(req,res){
//req 參數(shù)表示請(qǐng)求, res 表示響應(yīng)
console.log("服務(wù)器接收到了請(qǐng)求" + req.url);
res.end(); // End 方法使 Web 服務(wù)器停止處理腳本并返回當(dāng)前結(jié)果
});
//監(jiān)聽(tīng)端口
server.listen(3000,"127.0.0.1");

設(shè)置一個(gè)響應(yīng)頭:

res.writeHead(200,{"Content-Type":"text/html;charset=UTF8"});

我們現(xiàn)在來(lái)看一下 req 里面能夠使用的東西。

最關(guān)鍵的就是 req.url 屬性,表示用戶的請(qǐng)求 URL 地址。所有的路由設(shè)計(jì),都是通過(guò) req.url
來(lái)實(shí)現(xiàn)的。
我們比較關(guān)心的不是拿到 URL,而是識(shí)別這個(gè) URL。
識(shí)別 URL,用到了下面的 url 模塊

2.2、 URL 模塊的使用

url.parse() //解析 URL
url.format(urlObject) //是上面 url.parse() 操作的逆向操作
url.resolve(from, to) //添加或者替換地址
var http = require('http');
var url = require('url');
// 2.用http模塊創(chuàng)建服務(wù)
/*
 req獲取url信息   (request)
 res 瀏覽器返回響應(yīng)信息 (response)
 */
http.createServer(function(req, res) {
    // 輸入http://localhost:8001/news?aid=123   拿到aid
    // 輸入http://localhost:8001/news?aid=123&cid=3   拿到aid和cid
    // req.url  獲取瀏覽器url輸入的信息
    // var query=url.parse(req.url,true);
    // console.log(query);
    res.writeHead(200,{"Content-Type":"text/html;charset=UTF-8"});
    if (req.url != '/favicon.ico') {
        //http://localhost:8001/news?aid=123
        console.log(req.url);  //返回  /news?aid=123
        var result = url.parse(req.url, true); //第一個(gè)參數(shù)是地址    第二個(gè)參數(shù)是true的話表示把get傳值轉(zhuǎn)換成對(duì)象
        console.log('aid=' + result.query.aid);
        /*獲取url的get傳值*/
        console.log('cid=' + result.query.cid);
    }
    res.write('你好 nodejs');
    res.end();
    /*結(jié)束響應(yīng)*/
}).listen(8001);

1、url.parse()

2、url.format()

3、url.resolve()

三、Nodejs 自啟動(dòng)工具 supervisor

supervisor 會(huì)不停的 watch 你應(yīng)用下面的所有文件,發(fā)現(xiàn)有文件被修改,就重新載入程序文件這樣就實(shí)現(xiàn)了部署,修
改了程序文件后馬上就能看到變更后的結(jié)果。麻麻再也不用擔(dān)心我的重啟 nodejs 了!

1. 首先安裝 supervisor

npm install -g supervisor

2. 使用 supervisor 代替 node 命令啟動(dòng)應(yīng)用

supervisor   js文件

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • NodeJS學(xué)習(xí)筆記之網(wǎng)絡(luò)編程

    NodeJS學(xué)習(xí)筆記之網(wǎng)絡(luò)編程

    Node.js采用了Google Chrome瀏覽器的V8引擎,性能很好,同時(shí)還提供了很多系統(tǒng)級(jí)的API,如文件操作、網(wǎng)絡(luò)編程等。Node.js則是一個(gè)全面的后臺(tái)運(yùn)行時(shí),為Javascript提供了其他語(yǔ)言能夠?qū)崿F(xiàn)的許多功能。今天我們來(lái)看下Nodejs的網(wǎng)絡(luò)編程
    2014-08-08
  • node.js學(xué)習(xí)筆記之koa框架和簡(jiǎn)單爬蟲(chóng)練習(xí)

    node.js學(xué)習(xí)筆記之koa框架和簡(jiǎn)單爬蟲(chóng)練習(xí)

    這篇文章主要介紹了node.js學(xué)習(xí)筆記之koa框架和簡(jiǎn)單爬蟲(chóng)練習(xí),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • 詳解Node.js服務(wù)器靜態(tài)資源處理

    詳解Node.js服務(wù)器靜態(tài)資源處理

    靜態(tài)資源服務(wù)器指的是不會(huì)被服務(wù)器的動(dòng)態(tài)運(yùn)行所改變或者生成的文件,本文主要為大家詳細(xì)介紹了Node.js服務(wù)器靜態(tài)資源處理的相關(guān)知識(shí),需要的可以了解下
    2024-04-04
  • Koa2框架快速入門(mén)與基本使用方式

    Koa2框架快速入門(mén)與基本使用方式

    這篇文章主要介紹了Koa2框架快速入門(mén)與基本使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • nodejs操作mongodb的填刪改查模塊的制作及引入實(shí)例

    nodejs操作mongodb的填刪改查模塊的制作及引入實(shí)例

    下面小編就為大家分享一篇nodejs操作mongodb的填刪改查模塊的制作及引入實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • node.js中的path.dirname方法使用說(shuō)明

    node.js中的path.dirname方法使用說(shuō)明

    這篇文章主要介紹了node.js中的path.dirname方法使用說(shuō)明,本文介紹了path.dirname的方法說(shuō)明、語(yǔ)法、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • NodeJs 包管理工具的使用

    NodeJs 包管理工具的使用

    本文主要介紹了NodeJs 包管理工具,主要包括npm,cnpm及yarn,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • 淺談Node.js:理解stream

    淺談Node.js:理解stream

    本篇文章主要介紹了Node.js:stream,Stream在node.js中是一個(gè)抽象的接口,具有一定的參考價(jià)值,有需要的可以了解一下。
    2016-12-12
  • yarn?命令死循環(huán)問(wèn)題分析解決

    yarn?命令死循環(huán)問(wèn)題分析解決

    這篇文章主要為大家介紹了yarn?命令死循環(huán)問(wèn)題分析解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • 用Electron寫(xiě)個(gè)帶界面的nodejs爬蟲(chóng)的實(shí)現(xiàn)方法

    用Electron寫(xiě)個(gè)帶界面的nodejs爬蟲(chóng)的實(shí)現(xiàn)方法

    這篇文章主要介紹了用Electron寫(xiě)個(gè)帶界面的nodejs爬蟲(chóng)的實(shí)現(xiàn)方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01

最新評(píng)論

贵阳市| 格尔木市| 祁门县| 五华县| 天峨县| 安新县| 榆树市| 镇康县| 德江县| 遂川县| 禹州市| 密山市| 特克斯县| 舞阳县| 乌拉特前旗| 苏尼特右旗| 岱山县| 通道| 桂平市| 林州市| 永和县| 普兰县| 长汀县| 同仁县| 克东县| 手游| 恩施市| 新平| 莱西市| 福泉市| 宁陵县| 盐池县| 抚顺县| 西华县| 横山县| 北宁市| 应城市| 格尔木市| 宝应县| 三明市| 茶陵县|