Node.js的HTTP模塊、URL模塊與supervisor工具介紹
一、Node.js創(chuàng)建第一個應用
如果我們使用 PHP 來編寫后端的代碼時,需要 Apache 或者 Nginx 的 HTTP 服務器, 來處理客戶端的請求相應。不過對 Node.js 來說,概念完全不一樣了。使用 Node.js 時,我們不僅僅在實現(xiàn)一個應用,同時還實現(xiàn)了整個 HTTP 服務器。
1、引入 http 模塊
var http = require("http");
2、創(chuàng)建服務器
接下來我們使用 http.createServer() 方法創(chuàng)建服務器,并使用 listen 方法綁定 8888 端口。函數(shù)通過 request, response 參數(shù)來接收和響應數(shù)據(jù)。
/* 如果我們使用PHP來編寫后端的代碼時,需要Apache 或者 Nginx 的HTTP 服務器,并配上 mod_php5 模塊和php-cgi,來處理客戶端的請求相應。 不過對 Node.js 來說,概念完全不一樣了。使用 Node.js 時,我們不僅僅 在實現(xiàn)一個應用,同時還實現(xiàn)了整個 HTTP 服務器。 */ //1.引入http模塊 var http=require('http'); //2.用http模塊創(chuàng)建服務 /* * request 獲取url信息 * response 瀏覽器返回響應信息 */ http.createServer(function(request,response){ // 發(fā)送 HTTP 頭部 // HTTP 狀態(tài)值: 200 : OK //設置 HTTP 頭部,狀態(tài)碼是 200,文件類型是 html,字符集是 UTF-8 response.writeHead(200,{"Content-Type":"text/html;charset=UTF-8"}); // 發(fā)送響應數(shù)據(jù) response.end('你好 nodejs'); }).listen(8001); // 終端打印如下信息 console.log('Server running at http://127.0.0.1:8001/');
3.運行程序
用命令行切換到程序對應目錄。通過node 命令運行程序。
瀏覽器運行
你會發(fā)現(xiàn),我們本地寫一個 js,打死都不能直接拖入瀏覽器運行,但是有了 node,我們任何一個 js 文件,都可以通過 node 來運行。也就是說,node 就是一個 js 的執(zhí)行環(huán)境。
二、HTTP 模塊、URL 模塊
Node.js 中,將很多的功能,劃分為了一個個 module(模塊)。 Node.js 中的很多功能都是通過模塊實現(xiàn)。
2.1、HTTP模塊的使用
//引用模塊 var http = require("http"); //創(chuàng)建一個服務器,回調函數(shù)表示接收到請求之后做的事情 var server = http.createServer(function(req,res){ //req 參數(shù)表示請求, res 表示響應 console.log("服務器接收到了請求" + req.url); res.end(); // End 方法使 Web 服務器停止處理腳本并返回當前結果 }); //監(jiān)聽端口 server.listen(3000,"127.0.0.1");
設置一個響應頭:
res.writeHead(200,{"Content-Type":"text/html;charset=UTF8"});
我們現(xiàn)在來看一下 req 里面能夠使用的東西。
最關鍵的就是 req.url 屬性,表示用戶的請求 URL 地址。所有的路由設計,都是通過 req.url
來實現(xiàn)的。
我們比較關心的不是拿到 URL,而是識別這個 URL。
識別 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)建服務 /* req獲取url信息 (request) res 瀏覽器返回響應信息 (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); //第一個參數(shù)是地址 第二個參數(shù)是true的話表示把get傳值轉換成對象 console.log('aid=' + result.query.aid); /*獲取url的get傳值*/ console.log('cid=' + result.query.cid); } res.write('你好 nodejs'); res.end(); /*結束響應*/ }).listen(8001);
1、url.parse()
2、url.format()
3、url.resolve()
三、Nodejs 自啟動工具 supervisor
supervisor 會不停的 watch 你應用下面的所有文件,發(fā)現(xiàn)有文件被修改,就重新載入程序文件這樣就實現(xiàn)了部署,修
改了程序文件后馬上就能看到變更后的結果。麻麻再也不用擔心我的重啟 nodejs 了!
1. 首先安裝 supervisor
npm install -g supervisor
2. 使用 supervisor 代替 node 命令啟動應用
supervisor js文件
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
nodejs中art-template模板語法的引入及沖突解決方案
本篇文章主要介紹了nodejs中art-template模板語法的引入及沖突解決方案,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11Node Puppeteer圖像識別實現(xiàn)百度指數(shù)爬蟲的示例
本篇文章主要介紹了Node Puppeteer圖像識別實現(xiàn)百度指數(shù)爬蟲的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-02-02Nodejs+angularjs結合multiparty實現(xiàn)多圖片上傳的示例代碼
這篇文章主要介紹了Nodejs+angularjs結合multiparty實現(xiàn)多圖片上傳的示例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-09-09