Node.js的學習筆記

什麼是Node?

  • node.js是基於chrome V8引擎的javaScript的runtime(運行環境)
  • 事件驅動
  • 非阻塞的i/o模型 i/o: input output 輸入輸出流 正常狀況下i/o的操做都是阻塞的(相似於ajax的同步)經常使用的阻塞有網絡請求、數據庫處理 、文件的讀寫。。。
  • node.js的包管理工具npm,是全球最大的開源庫,生態系統。

Node的優勢

優勢:高併發特別好。高併發:同時大量的處理數據html

學習node的目的

一、防止甩鍋 明確數據交互的錯誤問題在誰
二、可以書寫api 斜槓青年(有第二產業的青年)
三、瞭解先後端交互流程
四、全棧工程師java

模塊化開發

  • 內置模塊
  • 第三方模塊
  • 自定義模塊
    • 建立一個模塊(一個js文件一個模塊)
    • 導出一個模塊(module.exports = name)
    • 引入一個模塊而且調用 let 變量名 = require(引入文件的路徑)

操做文件以及文件夾

內置模塊fs

文件夾的增刪改查

  • 增:fs.mkdir('文件路徑以及名字(./test)',回調函數(err)={ console.log(err) })
  • 刪:fs.rmdir('文件路徑名字',回調函數(err)=>{ console.log(err)})
  • 改:fs.rename('舊文件夾','新文件夾',回調函數)
  • 查:fs.readdir('文件夾路徑',(err,data)=>{console.log(err,data)})

文件的增刪改查

  • 增(建立文件):
    • 寫入文件:fs.writeFile('文件夾名字(name.js)','添加的內容(hello word)',回調函數(err)=>{ console.log(err), })
    • 在本來件後添加:fs.appendFile('(文件夾名字)name.js','添加的內容',回調函數(err)=>{console.log(err)})
  • 查(讀取文件):fs.readFile('(文件夾名字)name.js',回調函數(err,msg)=>{console.log(err,msg.toString('utf8'))}) 默認讀取是二進制數據流buffer,因此進行轉換。或者寫成fs.readFile('name.txt','utf8',(err,msg)=>{console.log(err,msg)})
  • 刪:fs.unlink('文件路徑和名字',(err)=>{console.log(err)})

內置模塊 url

  • url: 統一資源定位符 url由協議、域名、端口號、path、hash構成。

url的轉換(解析url)

  • 將url字符串轉爲url對象:url.parse(url字符串)
  • 將url對象轉爲url字符串:url.format(url對象)

內置模塊 Query String

  • 將query字符串轉爲對象:let qs = require('querystring') ; let string = 'user=67&page=65' let obj = qs.parse(string);console.log(obj)
  • 將query對象轉爲字符串:qs.stringify(obj,'#',':') 第一個參數是要轉化的query對象,第二個參數是健值對的以什麼符號切分的,第三個參數是鍵和值之間切分的符號。第2、三參數默認是&和=切分。

第三方模塊(俗稱插件)

nodemailer(node發送郵件的插件)

  • 一、先安裝nodemailer插件
  • 二、建立發送郵件的對象(配置郵件)
    • let transporter = nodemailer.createTransport({ host:'smtp.qq.com',//發送方的郵件類型,例如qq,網易,163等等;具體的經過依賴下的lib下的well-known下的server.json文件查找相關的配置 port:465,//郵箱類型的端口號 secure:true,//端口號爲465則爲true,其餘的全爲false auth:{ user:'236799127@qq.com',//發送方的郵箱密碼 pass:'fdshfhsajkh'//smtp驗證碼 這個在郵箱設置的帳戶下,點擊開啓就會有smtp驗證碼 } })
  • 三、 郵件的信息
    • let info = { from :'<2367991927@qq.com>',//從哪裏發出 to : '451464730@qq.com',//接收方郵箱 subject : '標題' , text : '發送的內容' //也能夠發送html, html:內容 }
  • 四、執行函數
    • transporter,sendMail(info)

node.js中的Error對象

  • let err = new Error('發生錯誤')
  • throw err //拋出錯誤,代碼終止執行
  • console.log(err),//打印錯誤對象,代碼繼續執行

node.js中的簡易爬蟲

爬蟲案例的原理

  • 一、獲取目標網站 經過http.get實現
  • 二、分析網站內容 經過cheerio插件經過這個插件可使用JQ裏的各類選擇器
  • 三、獲取有效信息(下載或者其餘操做)

node中的express框架

express的基本使用

經過express框架書寫api

登陸接口的邏輯分析

一、接收數據(用戶名和密碼)
二、處理數據(判斷用戶名和密碼是否正確)
三、返回數據(告訴用戶是否登陸成功)node

服務器相關的概念

  • 服務器:
    • 本質上就是一臺電腦
    • 須要一個服務器軟件開啓服務器
    • 服務器ip和端口號
  • 局域網:服務器經過網線(無線鏈接);每一臺電腦都會有一個ip
  • 外網:
相關文章
相關標籤/搜索