1. 程式人生 > >Node Js 基本工作原理及流程詳解

Node Js 基本工作原理及流程詳解

1,專案前期準備: 以express 框架為例 npm i express-generator -g //全域性安裝express框架 express -e //生成express應用骨架 npm i //安裝依賴 npm start //在3000埠監聽

拓展:目前最市面上最流行的node框架有: --Sail.js Sails.js 就像是 Node.js 平臺上的 Rails 框架。這是一個可靠可伸縮的開發框架,面向服務的架構,提供資料驅動的 API 集合。用來開發多玩家遊戲、聊天應用和實時面板引用非常方便,也可用於開發企業級 Node.js 應用。 Sails.js 基於 Node.js, Connect, Express 和

Socket.io 構建。

–Koa.js koa.js是下一代的 Node.js 的 Web 框架。由 Express 團隊設計。旨在提供一個更小型、更富有表現力、更可靠的 Web 應用和 API 的開發基礎。 Koa可以通過生成器擺脫回撥,極大地改進錯誤處理。Koa核心不繫結任何中介軟體,但提供了優雅的一組可以快速和愉悅地編寫伺服器應用的方法。

2,專案開始 --利用bootstrap完成佈局(或者使用bulma前端css框架也很方便) --把需要複用的小元件放在一個資料夾在,這裡我新建了一個commjs目錄 --建構函式中載入DOM結構(面向物件思想) --把一切需要重複使用的元件模組化,哪裡需要哪裡引入,程式碼複用

3,理解mvc --控制器Controller: 是應用程式中處理使用者互動的部分。 通常控制器負責從檢視讀取資料,控制使用者輸入,並向模型傳送資料。

作用:根據路由中設定的路徑不同,呼叫控制器中對應的方法(函式), res.body =>獲取post請求中傳遞的引數 res.query => 獲取get請求中的資料 業務邏輯基本都在控制層,呼叫模型中相對應的函式,把需要傳遞的資料作為引數傳遞進去

–模型Model Model(模型)是應用程式中用於處理應用程式資料邏輯的部分。 作用:通常模型物件負責在資料庫中存取資料。

因為模型中的函式需要在控制器裡呼叫,所以在最後需要匯出模型。 模型裡,涉及到資料庫的操作需要依賴mogoose包

模型處理資料會返還一個promise物件,成功或者失敗通過Promise.then呼叫 控制器裡傳遞過來的成功或者失敗的函式 再由控制器res.json返還到前端

–View(檢視) 是應用程式中處理資料顯示的部分。 通常檢視是依據模型資料建立的

4,前端到後端 作為前端如果我們需要拿到後端的資料,就得傳送ajax請求,如果涉及到檔案操作,就必須用post 請求 通過不同的url(在app.js裡設定過),拿到不同的資料 view-Controller-Model ,根據返還的資料渲染頁面 這裡還是MVC模式,所以MVC流程必須得熟悉。

5,功能 登入: 涉及到資料庫的操作,查詢的結果是Promise物件, 控制器裡面的操作還是那麼回事,前端傳遞到控制器的引數,一個成功的回撥,一個失敗的回撥 模型裡promise.then()決定呼叫成功或者失敗的函式,傳到控制器回撥,控制器res.json返還到資訊前端

需要儲存使用者登入資訊:npm i cookie-session --save app.js中配置cookie-session中介軟體 檢查是否登入: 前端載入時,傳送ajax請求,根據響應資訊,判斷是否登入,渲染登入效果 點選退出時,把req.session置為null

**fromData.append("","")可以追加請求資訊

6,關於檔案上傳 --涉及到檔案上傳,在伺服器端(路由)中引入 multer模組 npm i multer --save

–配置檔案上傳 ,cv原則,修改儲存位置和命名規則即可

–路由裡,回撥函式前加一個檔案上傳的方法 router.post(’’,upload,single(‘檔案上傳表單name名’),fn)

–控制器判斷是否有檔案上傳(res.file) 如果有用變數儲存檔案路徑 => const file = “/路由中配置的儲存路徑/” + req.file.filename

7,mvc意義 MVC 分層有助於管理複雜的應用程式,因為您可以在一個時間內專門關注一個方面。例如,您可以在不依賴業務邏輯的情況下專注於檢視設計。同時也讓應用程式的測試更加容易。 MVC 分層同時也簡化了分組開發。不同的開發人員可同時開發檢視、控制器邏輯和業務邏輯。

8,總結

Node.js實現了前後端分離,把mvc理解之後,所有的操作都是按部就班,前端請求到後端資料,只用根據請求到的資料來渲染頁面,後端控制器裡主要負責業務邏輯,模型裡面儲存的是資料(mongodb是非關係型資料庫,需要轉化成關係型資料庫)。控制器聯絡著顯示層和模型,它決定後端返回什麼資料,前端能拿到什麼資料

“相信有很多想學前端的小夥伴,今年年初我花了一個月整理了一份最適合2018年學習的web前端乾貨,從最基礎的HTML+CSS+JS到移動端HTML5到各種框架都有整理,送給每一位前端小夥伴,53763,1707這裡是小白聚集地,歡迎初學和進階中的小夥伴。”

最後:祝大家早日學有所成,拿到滿意offer,快速升職加薪,走上人生巔峰。 在這裡插入圖片描述