13號就可以真正的開始第4課程的視頻了,哈哈。視頻完成之后,順便把JS采坑日志遺留的幾個(gè)問題,回答一下。
1、第一部分主要講了上節(jié)課遺留的問題
在客戶端和服務(wù)端進(jìn)行數(shù)據(jù)交換的時(shí)候,盡量來使用json。
send 在日常的開發(fā)中,很少的用到。render,如果你不要Express自己用到的這個(gè)框架構(gòu)建頁面的時(shí)候,可以不用這個(gè)render( 渲染 )。
關(guān)于路由中的 “/ “ 與 ”/*” 的處理的差異。Express中的三大利器: App 的對象,非常的重要,可是使用use的方法來處理各種中間件。 Router 來真正處理路由的核心的模塊。
關(guān)于Router的學(xué)習(xí),可以使用sample5的例子來研究。app.use('/',index ) 其中的index是Router的類型。Express在處理所有的路由的時(shí)候,其實(shí)就是把路由推給了 Router 這個(gè)中間件。
改動(dòng) Router. get 更改為 Router.post 的話,那么整個(gè)網(wǎng)站的主頁就無法進(jìn)行訪問。這個(gè)原因是什么?http有非常多的方法,get post patch put delete。一個(gè)客戶端如果發(fā)的get的請求,如果不能用路由的get與之對應(yīng)的處理,那么就無法對應(yīng)上。瀏覽器默認(rèn)是get的路由。
如果處理根路由的時(shí)候,既用get,也用post,那么主站就可以進(jìn)行訪問。此時(shí)為了模擬這個(gè)請求,可以使用postman來往網(wǎng)站打請求。相同的路由,可以根據(jù)不同的方法來進(jìn)行過濾。
1. 普通工程師設(shè)計(jì)的思路如下:
GET / posts 獲取文章
POST / posts/create 創(chuàng)建文章
DELETE / posts/delete 刪除文章
PUT /posts/update 修改文章
PATCH /posts/update2 修改文章
2.高級工程師設(shè)計(jì)的思路如下:
GET / posts 獲取文章
POST / posts 創(chuàng)建文章
DELETE / posts 刪除文章
PUT /posts 修改文章
PATCH /posts 修改文章
這種Router根據(jù)不同的路由,來進(jìn)行不同場景的處理。
2、學(xué)習(xí)Express的官網(wǎng)
學(xué)習(xí)Express里面的http的很多方法。但是它對于初學(xué)者并不是非常的友好。但是作為工程師,要有一種反推的能力。
特別好玩的一個(gè)事情: 真實(shí)的場景是可能現(xiàn)實(shí)生活中,某個(gè)具體的IP總是在耗費(fèi)我的流量,所以在后臺進(jìn)行截流的處理。
在index里面接受一個(gè)的路由處理
Router.get('/users',function(res ,req , err){
res.send('zhangsan ');
}) ;
路由的處理存在截流的問題,截流數(shù)據(jù)一定有原因的。
軟件的升級,不一定要停服務(wù)。中間件的截流都是一個(gè)比較好的方式。Router中間件的方式非常非常的重要。
中間件截流一般應(yīng)用于什么地方。目的是對于數(shù)據(jù)重新的封裝,重新的處理。還有一些截流是賬號系統(tǒng)相關(guān)的截流??梢阅玫綌?shù)據(jù)的信息,進(jìn)行用戶信息的判斷。
3、模板引擎
Express 與Ejs 之間的關(guān)系是什么?EJS不是Express的中間件,只是Express硬拿過來的。類比:農(nóng)夫山泉的好的廣告,Ejs不是Express創(chuàng)造出來的,只是Express在設(shè)計(jì)的時(shí)候,兼容出來的。
Express的App.js 里面設(shè)置了視圖界面的引擎,但是整個(gè)對于Express不是必須的,可以使用其他的進(jìn)行替換。對于初學(xué)者而言,jad的格式要求非常的嚴(yán)格,初學(xué)者使用的時(shí)候,特別的困難。
-
如果自己做的時(shí)候,需要首先需要引入ejs。require(‘ejs’),還需要引入一個(gè)path,以及fs的文件。
image.png
以上代碼的目的是想要不通render,自己來進(jìn)行頁面的渲染。以下是自己渲染的頁面的代碼。

render函數(shù)的價(jià)值就是構(gòu)建頁面非常的簡單。但是日常的很多項(xiàng)目需要自己來構(gòu)建頁面,所以要知道這個(gè)點(diǎn)。
res.locals.title = "mingzi" 也可以在頁面得到一些數(shù)據(jù)。res.locals 非常的重要,render只能給當(dāng)前的頁面一些處理數(shù)據(jù)的能力。但是locals 可以給所有的頁面進(jìn)行數(shù)據(jù)的傳遞的作用。
4、最后幾分鐘的一些答疑
找到自己如何通過構(gòu)建界面,返回給用戶,也蠻重要的。
關(guān)于如何訪問根目錄,還是有些疑惑。不管什么路由就返回一個(gè)index的界面。這個(gè)就可以進(jìn)行處理。
頁面如何渲染 markdown呢?首先需要安裝一個(gè)markdown-it,然后用require進(jìn)行引入的操作。之后調(diào)用markdown的render方法來進(jìn)行表頭的調(diào)用。一般都是渲染好了,然后在進(jìn)行傳入進(jìn)去。
徐杰再次問了一個(gè)問題,我知道的第二次。
Http 有哪些方法?老師說這個(gè)需要自己去查,不要直接問。
老師在社區(qū)里面寫的文檔,所有的也都需要單獨(dú)的過一遍。
這節(jié)課程開始,老師表示自己可能就不在新大了,所以希望大家珍惜可以在一起上課的時(shí)光。老師表示從心里面特別想帶大家對于Express有一個(gè)比較深的認(rèn)知,這個(gè)非常的重要。老師表示上課不是自己的一個(gè)職業(yè)。后面可能開課的機(jī)會(huì)不是非常的多。老師希望大家都能好好的加油!
老師再次問了,大家還有沒有什么的問題?關(guān)于上課老師表示自己也沒有拿錢,也完全不care定價(jià),完全是奉獻(xiàn)。學(xué)習(xí)肯定是需要交流的,自我的學(xué)習(xí)是不好的。和別人交流是非常重要的。老師表示自己在學(xué)習(xí)的過程中,經(jīng)常會(huì)與周圍的同學(xué)進(jìn)行交流。
老師說有問題,可以幫助大家,但是具體的代碼的處理,需要自己來搞。這種具體的代碼跑不通的問題,還是需要自己來嘗試。
8-13 老師表示還是非常的簡單。從下節(jié)課程的時(shí)候,老師要突出數(shù)據(jù)庫的方面的知識了。mongdb非常適合處理論壇以及博客的內(nèi)容型的,是非常非常好的東西。所以搞定這個(gè)東西是非常好的。數(shù)據(jù)庫安裝的時(shí)候,非常的麻煩,所以建議在安裝的時(shí)候用docker,可以做到一鍵安裝。
還有就是不要急于進(jìn)行部署到服務(wù)器。有些同學(xué)在安裝的時(shí)候,會(huì)遇到問題。但是肯定有解決的方式。
老師表示還是練習(xí)8-13,希望大家可以不斷的進(jìn)行回顧。我覺得關(guān)于老師說的這里,可以從社區(qū)的文檔,再次理解其中的1-13小結(jié)里面的很多的東西。
老師表示課程的學(xué)習(xí)之后,還能在群里進(jìn)行交流,進(jìn)行一年的交流,那么收獲最大的就是自己。老師表示自己還會(huì)在北京,暫時(shí)不會(huì)離開。沒有問題的話,老師表示下周三見,但是不排除調(diào)整上課的時(shí)間。
老師表示第2季的課程的視頻播放的權(quán)利是他的,所以可將視頻直接分享給大家。預(yù)習(xí)要比復(fù)習(xí)重要很多倍,所以大家一定要記得預(yù)習(xí)。
