摘要:簡稱,下同從此有了開發(fā)后段應(yīng)用程序的能力。因為使用的是語言,所以一發(fā)布以來就受到了廣大前端開發(fā)人員的喜愛。通過非阻塞流事件驅(qū)動機(jī)制展現(xiàn)了它超強(qiáng)的高并發(fā)能力。現(xiàn)在我們就開始學(xué)習(xí)。
一、什么是Node.js前言:自從下決心轉(zhuǎn)學(xué)前端以來,我的專業(yè)課java基本荒廢了,所以對于后臺開發(fā)的邏輯也已基本忘干凈了。但是作為一名準(zhǔn)前端程序猿,我認(rèn)為還是有必要了解后端開發(fā)的,雖不必深入學(xué)習(xí),但是能夠了解項目從前端到后端的整個流程,實現(xiàn)簡單的業(yè)務(wù)邏輯(增刪改查)應(yīng)該對我們大有裨益。NodeJS應(yīng)該說是前端開發(fā)人員涉及后端開發(fā)的最佳選擇,因為使用的是前端很熟悉的Javascript語言。
Node.js是一個基于V8引擎的服務(wù)器端Javascript運行環(huán)境。Javascript(簡稱JS,下同)從此有了開發(fā)后段應(yīng)用程序的能力。
因為使用的是JS語言,所以一發(fā)布以來就受到了廣大前端開發(fā)人員的喜愛。很多前端開發(fā)人員開始涉足后端開發(fā),使用Node.js重構(gòu)前端工具。
Node.js通過非阻塞I/O流、事件驅(qū)動機(jī)制展現(xiàn)了它超強(qiáng)的高并發(fā)能力。此外,Node使用的是高性能的V8引擎,提供了很多不同用途的API,采用全新的編譯技術(shù),實現(xiàn)了一個高性能的服務(wù)器。
二、Node.js環(huán)境安裝Node.js的環(huán)境安裝十分簡單,去官網(wǎng) http://nodejs.org/en/ 下載穩(wěn)定版本安裝包,點擊下一步下一步安裝即可。
完成以后可以打開CMD輸入node -v查看是否安裝成功:
C:Usersdawei>node -v v6.11.1
出現(xiàn)node的版本號則表示安裝成功。
現(xiàn)在我們就開始學(xué)習(xí)Nodejs。Node.js中,將很多功能劃分為一個個module(模塊)。Node.js中的很多功能都是通過模塊來實現(xiàn)的。
三、http模塊HTTP模塊用于創(chuàng)建服務(wù)器,接收和響應(yīng)客戶端的請求。
//1、引入http模塊 var http = require("http"); //創(chuàng)建服務(wù)器 var server = http.createServer(function (req , res) { //發(fā)送HTTP頭部 //HTTP狀態(tài)碼:200:OK //設(shè)置HTTP頭部,狀態(tài)碼是200,文件類型是html,字符集是utf-8 res.writeHead(200,{"Content-Type":"text/html;charset=UTF-8"}); //發(fā)送相應(yīng)數(shù)據(jù) res.write("Hello Node.js"); //結(jié)束處理程序,返回數(shù)據(jù) res.end(); }); server.listen(8080); //監(jiān)聽端口 //在終端打印如下信息,提示服務(wù)器已啟動 console.log("Server running at http://127.0.0.1:8080/");
這樣我們就完整的創(chuàng)建了一個web服務(wù)器,可以在瀏覽器通過http://127.0.0.1:8080訪問該服務(wù)器。
回調(diào)函數(shù)中的req對象包含了客戶端請求的信息,可以使用req.url屬性拿到用戶請求的URL地址,在后期我們就是要通過不同的URL來設(shè)計不同的路由。那么識別這個URL,就用到了URL模塊。
四、URL模塊URL模塊提供了幾個方法用于操作url。
url.parse(req.url):解析url,將url地址轉(zhuǎn)為url對象
url.format():將url對象轉(zhuǎn)為url字符串,是parse方法的逆向操作
url.resolve(from,to) :添加或者替換路由
1、url.parse()假設(shè)在上面的代碼段中引入了url模塊
url.parse(req.url) 那么將會打印如下內(nèi)容 { protocol: null, slashes: null, auth: null, host: null, port: null, hostname: null, hash: null, search: null, query: null, pathname: "/", path: "/", href: "/" }
由于我們只是訪問了根路徑,所以內(nèi)容基本為空,很多情況下我們需要訪問詳細(xì)的頁面并且傳遞參數(shù)
http://127.0.0.1:8080/login.html?uaername=dawei&pass=123
{ protocol: null, slashes: null, auth: null, host: null, port: null, hostname: null, hash: null, search: "?uaername=dawei&pass=123", query: "username=dawei&pass=123", pathname: "/login.html", path: "/login.html?uaername=dawei&pass=123", href: "/login.html?uaername=dawei&pass=123" }
可以看到,這個對象的query屬性保存了我們的參數(shù),也叫做查詢字符串。pathname屬性中保存了我們的訪問路徑。這兩個屬性很常用。
我們往往需要獲取參數(shù)信息,在服務(wù)器端做進(jìn)一步處理。在JS中我們可以使用字符串截取來獲取參數(shù),不過再這里我們可以直接給parse方法傳遞一個參數(shù)true來將查詢字符串轉(zhuǎn)為對象格式,從而很方便的獲取。
url.parse(req.url,true) { protocol: null, slashes: null, auth: null, host: null, port: null, hostname: null, hash: null, search: "?username=dawei&pass=123", query: { username: "dawei", pass: "123" }, pathname: "/login.html", path: "/login.html?username=dawei&pass=123", href: "/login.html?username=dawei&pass=123" }
這樣我們就可以很方便的獲取參數(shù)的值。
2、url.resolve() a、增加路由var a = url.resolve("http://example.com/", "/one"); console.log(a); // http://example.com/oneb、替換路由
var b = url.resolve("http://example.com/one", "/two"); console.log(b); // http://example.com/two
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/89985.html
摘要:寫在前邊從去年一直陸續(xù)學(xué)習(xí)前端的知識,起初學(xué)習(xí)和寫頁面。自學(xué)前端主要還是有一個明確的目標(biāo),這樣才能有效的學(xué)習(xí)和容易堅持。通過這次任務(wù)的實現(xiàn)能夠系統(tǒng)的了解前端的開發(fā)流程,以及一些工具的使用。 寫在前邊 從去年一直陸續(xù)學(xué)習(xí)前端的知識,起初學(xué)習(xí)HTML和CSS寫頁面。但是覺得自己對這方面沒有太好的天賦,學(xué)著忘著,很是痛苦。在接觸前端過程中,發(fā)現(xiàn)應(yīng)用javascript實現(xiàn)一些功能,自己比較...
摘要:回調(diào)函數(shù)提供兩個參數(shù)和,表示有沒有錯誤發(fā)生,是文件內(nèi)容。文件關(guān)閉第一個參數(shù)文件時傳遞的文件描述符第二個參數(shù)回調(diào)函數(shù)回調(diào)函數(shù)有一個參數(shù)錯誤,關(guān)閉文件后執(zhí)行。 showImg(//img.mukewang.com/5d3f890d0001836113660768.jpg); 人所缺乏的不是才干而是志向,不是成功的能力而是勤勞的意志。 —— 部爾衛(wèi) 文章同步到github博客:https:/...
摘要:但是究竟什么是區(qū)塊鏈呢如何基于區(qū)塊鏈構(gòu)建去中心化的應(yīng)用這個系列文章很有料,有圖文解釋有代碼實例,非常適合入門。想知道我接下來會寫些什么歡迎訂閱我的掘金專欄或知乎專欄前端周刊讓你在前端領(lǐng)域跟上時代的腳步。 showImg(https://segmentfault.com/img/remote/1460000010417511); 共 2044 字,讀完需 4 分鐘。本期以《提問的智慧》作...
摘要:一個小白的成長日記大家好,這是我在飯否的第一篇筆記,先簡單介紹一下自己,我于年在北京工業(yè)大學(xué)本科畢業(yè),同年月來到法國巴黎工程師學(xué)校讀研,在年月畢業(yè)后加入了法國興業(yè)銀行擔(dān)任數(shù)據(jù)分析師的職位,主要負(fù)責(zé)數(shù)據(jù)質(zhì)量監(jiān)測,分析,潛在風(fēng)險預(yù)測,前端可視化 一個小白的成長日記 大家好,這是我在飯否的第一篇筆記,先簡單介紹一下自己,我于2016年在北京工業(yè)大學(xué)本科畢業(yè),同年9月來到法國巴黎Efrei工程...
摘要:其中負(fù)載均衡那一節(jié),基本上是參考的權(quán)威指南負(fù)載均衡的內(nèi)容。開發(fā)指南讀了一半,就是看這本書理解了的事件循環(huán)。哈哈創(chuàng)京東一本騙錢的書。 歡迎大家前往騰訊云+社區(qū),獲取更多騰訊海量技術(shù)實踐干貨哦~ 本文由騰訊IVWEB團(tuán)隊 發(fā)表于云+社區(qū)專欄作者:link 2014年一月以來,自己接觸web前端開發(fā)已經(jīng)兩年多了,記錄一下自己前端學(xué)習(xí)路上看過的,以及道聽途說的一些書,基本上按照由淺入深來介紹...
閱讀 1817·2021-11-18 13:21
閱讀 1953·2021-10-18 13:30
閱讀 1539·2021-10-12 10:13
閱讀 906·2021-10-09 09:43
閱讀 5413·2021-09-22 15:13
閱讀 3583·2021-08-11 10:22
閱讀 936·2019-08-30 13:46
閱讀 3520·2019-08-30 13:21