Node.js基本使用2
linux命令

1. mkdir 創(chuàng)建文件夾 2. vim 簡(jiǎn)寫 vi 創(chuàng)建文件的 3. rm -rf 文件名稱 刪除 4. 遞歸刪除 find ./ -name '文件名稱' -print -exec rm -rf {} \;
舉例: find ./ -name ‘node_modules’ -print -exec rm -rf {} ;
5. cat 文件名稱 查看某個(gè)文件的內(nèi)容
前端渲染 vs 后端渲染
1. 前端拿到數(shù)據(jù)之后, 前端來(lái)渲染數(shù)據(jù) 2. 后端來(lái)進(jìn)行渲染( express ) 3. 瀏覽器 -》 開(kāi)發(fā)者工具-》 network 1. headers 1. general 2. responseHeaders 3. requestHeaders 4. query string paramters 5. Form data(表單提交的) 4.前后端渲染優(yōu)劣分析 地址:https://www.cnblogs.com/zhangrunhao/p/6845626.html
node.js http.get 后端爬蟲(chóng)
步驟: 數(shù)據(jù)抓取 ---》 數(shù)據(jù)清洗 ---》 數(shù)據(jù)格式整理---》 發(fā)送前臺(tái)(web服務(wù)器)
爬蟲(chóng)案例:
爬蟲(chóng)案例:
反爬蟲(chóng):
數(shù)據(jù)清洗的時(shí)候做,數(shù)據(jù)中用一個(gè)其他類型格式數(shù)據(jù)
events
1. Emitter.prototype 繼承過(guò)來(lái)了 on emit - on:事件的定義 - emit:事件的觸發(fā) 2.
fs/ zlib/ stream
1.fs(文件模塊) fs.readFile fs.open fs.openSync(open的同步方式) fs.write fs.close fs.unlink fs.readdir **注意:fs 模塊的每一個(gè)方法都提供了異步與同步的兩種操作方式。其中,異步的方式性能高,是一種推 薦的操作方式。如果您需要采用同步的方式,只要在異步方法名后面加上 Sync 即可,同時(shí)去掉末尾的 callback 參數(shù)**。 2.zlib 3.stream(流模塊) 流是一個(gè)抽象接口,有四種流類型 readable:可讀 writable:可寫操作 duplex:可讀可寫操作 transform:操作被寫入數(shù)據(jù),然后讀出結(jié)果 4.聯(lián)合項(xiàng)目:制作壓縮包 制作一個(gè)壓縮包的流程: 1. 先有一個(gè)文件 2. 讀取文件 3. 制作壓縮包 4. 將讀取的數(shù)據(jù)放入到壓縮包中 code: const zlib = require('zlib'); const fs = require('fs'); //創(chuàng)建可讀的流 const inp = fs.createReadStream('yyb.txt'); //創(chuàng)建空壓縮包 const gzip = zlib.createGzip(); //創(chuàng)建可寫的流 const out = fs.createWriteStream('yyb.txt.gz'); inp.pipe(gzip).pipe(out);
Node.js原生路由
1. 為什么要引進(jìn)前端路由這樣一個(gè)東西
前端異步流程控制工具( 所有的 )
1. Promise https://blog.csdn.net/MrJavaweb/article/details/79475949
Generator
https://www.cnblogs.com/imwtr/p/5913294.html
Generator
https://www.cnblogs.com/imwtr/p/5913294.html
Async-await
Node.js 中的nextTick()和setimmediate()
https://www.cnblogs.com/5ishare/p/5268273.html
async庫(kù)
https://caolan.github.io/async/
參考文檔
Event-loop
http://www.ruanyifeng.com/blog/2014/10/event-loop.html?bsh_bid=983729729
史上最易讀懂的 Promise/A+ 完全實(shí)現(xiàn)
https://zhuanlan.zhihu.com/p/21834559
npm script( npm腳本 )
1. 概念: npm 允許在package.json文件里面,使用scripts字段定義腳本命令。
常用使用:
npm腳本就相當(dāng)于一個(gè) 電器的使用說(shuō)明書(shū)
npm腳本運(yùn)行使用 npm run
npm腳本可以簡(jiǎn)寫,但是只有特定幾個(gè)
npm腳本可以簡(jiǎn)寫,但是只有特定幾個(gè)
npm start -> npm run start
npm stop -> npm run stop
npm text -> npm run test
npm restart -> npm run stop & npm run start
express
構(gòu)建后端項(xiàng)目的一個(gè)框架
安裝生成器
npm install express-generator -g
安裝生成器
npm install express-generator -g
使用
express options 項(xiàng)目名稱
創(chuàng)建項(xiàng)目
舉例: express 04-express-project
目錄內(nèi)容
bin 項(xiàng)目的配置文件( 比如: port )
www 使用http模塊創(chuàng)建一個(gè)web服務(wù)器
public 靜態(tài)資源文件夾( html css images js )
routes 路由
views 后端模板文件夾
app.js 整個(gè)項(xiàng)目的入口文件
package.json 整個(gè)項(xiàng)目的依賴包配置文件( 說(shuō)明書(shū) )
項(xiàng)目的啟動(dòng)
先進(jìn)入項(xiàng)目
cd 項(xiàng)目名稱
安裝項(xiàng)目需要的依賴
npm install
項(xiàng)目啟動(dòng)(說(shuō)明書(shū) package.json 中 scripts腳本)
npm start
建議:
養(yǎng)成一個(gè)習(xí)慣: 看到一個(gè)項(xiàng)目, 首先看項(xiàng)目的說(shuō)明書(shū)(package.json)
看一個(gè)項(xiàng)目流程?
package.json
依賴包
npm腳本–》 項(xiàng)目啟動(dòng)命令–》配置文件
express 中間件 Middleware
中間件: 具有特定功能的函數(shù)
中間件(Middleware) 是一個(gè)函數(shù),它可以訪問(wèn)請(qǐng)求對(duì)象(request object (req)), 響應(yīng)對(duì)象(response object (res)), 和 web 應(yīng)用中處于請(qǐng)求-響應(yīng)循環(huán)流程中的中間件,一般被命名為 next 的變量。
中間件的功能包括:
*
執(zhí)行任何代碼。
*
修改請(qǐng)求和響應(yīng)對(duì)象。
*
終結(jié)請(qǐng)求-響應(yīng)循環(huán)。
*
調(diào)用堆棧中的下一個(gè)中間件。
中間件包含三個(gè)部分(形式參數(shù))
request : 請(qǐng)求
response: 響應(yīng)
next: 請(qǐng)求和響應(yīng)流程中的中間件, 用next變量表示
express中提供了
應(yīng)用級(jí)中間件
應(yīng)用級(jí)中間件就是一個(gè)具有特定功能性的函數(shù), 這個(gè)函數(shù)需要綁定在app對(duì)象身上,通過(guò)app.use() || app.method() 來(lái)調(diào)用
路由中間件
錯(cuò)誤中間件
app對(duì)象
const app = express()
使用: 1. app.use() 調(diào)用中間件(函數(shù)) 2. app.method() 處理http請(qǐng)求的
前端的請(qǐng)求方式很多的: 比如: get post delete put all
杭州: Node.js中間件封裝
Node.js渲染模板
1. ejs
2. pug(曾用名: jade) 語(yǔ)法功能很強(qiáng)大
3. art-template(純后端模板)
javaScript Node.js
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。