在做第二次大作業之前,我從同學和老師那裡得知了第一次作業的一些遺漏的問題,由於大作業是基於第一次作業來完成的,我還是決定將其整理進報告。
另外也很順利的在mysql資料庫裡找到了對應的資訊:
解決資訊源的問題後,就可以開始本次的專案了。
安裝必要模組和更新資料庫:
這部分內容很少,只需少量操作即可完成。首先是在示例檔案final_project裡安裝必要模組,但很不幸的出現了node-jieba模組安裝失敗的問題,按照助教的提示操作後,成功安裝了模組,在bin資料夾下node www,之前沒有注意到的是執行後進入網頁才能看到效果,這次吸取了教訓,保持cmd執行的狀態進入localhost:3000,看到了登入註冊介面。
但此時登入和註冊操作都是無法完成的,原因是賬戶的資訊還沒有儲存的地方。為了解決這個問題,我在mysql裡原本crawl資料庫裡的**上擴增了空間,使其可以儲存username,password和額外要求的歷史操作記錄即user_action,包括訪問時間,訪問內容等。具體操作就是在mysql裡use crawl後執行專案例項給出的**。執行後,原先的**變成了這個樣子:
完成之後,localhost:3000裡就可以註冊登入了。
完成網頁建立後就可以考慮開始完善搜尋任務。這次的搜尋比起上次多了乙個要求,即可以使用布林關係式來加強篩選搜尋的內容。這樣乙個搜尋方式主要在於dao資料夾下newsdao.js裡的search函式實現。
簡單來講就是在搜尋頁面填寫的標題、內容分別代指t1,t2,c1,c2,其對應的布林關係符用ts,cs指代。首先判斷t1、t2的非空性來給sql新增標題語句,其次判斷c1的非空性來給sql新增銜接詞,最後判斷c1,c2的非空性給sql新增內容語句,最後通過sql在mysql資料庫裡尋找對應資訊。
搜尋效果如下圖:
明顯看得出通過內容關鍵字檢索出來的結果遠多於標題關鍵字。
大概意思就是每頁顯示5條搜尋結果,用總結果數除以5上取整作為分頁數,保證分頁顯示的頁數編號不超過5個,最後用slice方法分頁。
下面是分頁編號的顯示的**:
這部分沒什麼好說的,值得一提的是當此時頁面編號是2的時候下面的頁面編號欄顯示的是2,3,4,5,6,而不是1,2,3,4,5,優化這個問題很簡單,多加一條分支語句就行了。
由於圖示我們用的都是別人已經設計好的樣式,我只需要確定橫縱軸的資料即可。比如histogram圖現顯示的是近兩個月新聞發布數在各個時間點的數值。
這個圖表的資料會根據資料庫的更新而更新。
實現獲取前端關鍵字的詞頻折線圖有點麻煩,我沒能成功,主要是不知道怎麼讓輸入欄與折線圖同時顯示和不顯示。另外要說的是,修改後端的關鍵字要重啟cmd執行www才行。
然後是詞云,它顯示的是最近新聞關鍵字組成的一張圖,從關鍵字大小可以大概估計它的頻率:
這次專案難度對於我這種基礎很差的初學者來說還是很難的,對於**基本是乙個「唯讀」的狀態,原因主要在於練習與記憶不夠。這個專案本身還是很有意思的,讓我首次接觸到了web網頁的應用,前後端的合作執行,雖然總有種雲裡霧裡的感覺,但也讓我多了個努力的方向。
關於大專案的經驗總結
幾年的工作中,經歷了2個幾十號人以上的大專案.深深體會了,乙個好的框架對專案的成成敗是多麼重要的.尤其是我上乙個專案.做的是乙個國內頂尖的醫療公司的乙個門戶專案.當時由於專案的時間比較緊,沒有過多時間去考慮和研究框架.於是就簡單引進公司的另外乙個框架,到最後的2年多使用時間,就逐漸感覺到了那框架的弊...
一 關於大專案的經驗總結
幾年的工作中,經歷了2個幾十號人以上的大專案.深深體會了,乙個好的框架對專案的成成敗是多麼重要的.尤其是我上乙個專案.做的是乙個國內頂尖的醫療公司的乙個門戶專案.當時由於專案的時間比較緊,沒有過多時間去考慮和研究框架.於是就簡單引進公司的另外乙個框架,到最後的2年多使用時間,就逐漸感覺到了那框架的弊...
大專案小專案
很多人責怪第一門計算機語言的老師不行 我也是的 雖然那個時候自己無心也無力對老師進行評價 現在想想只能用 誤人子弟 來形容這位尊敬的副院長 很神奇授課的時候把大學的東西搞明白了 小碩的時候把授課的東西搞明白了 工作了把小碩的東西搞明白了 永遠都慢了一拍 那什麼時候才能把工作的東西搞明白?今年的工作接...