您好,登錄后才能下訂單哦!
好程序員 w eb 前端學習教程之 Node Js 流程 1 ,項目前期準備:
以 express 框架為例
npmiexpress-generator-g// 全局安裝 express 框架
express-e// 生成 express 應用骨架
npmi// 安裝依賴
npmstart// 在 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 返還到信息前端
需要保存用戶登錄信息: npmicookie-session--save
app.js 中配置 cookie-session 中間件
檢查是否登錄:
前端加載時,發送 ajax 請求,根據響應信息,判斷是否登錄,渲染登錄效果
點擊退出時,把 req.session 置為 null
**fromData.append("","") 可以追加請求信息
6, 關于文件上傳
-- 涉及到文件上傳,在服務器端 ( 路由 ) 中引入
multer 模塊 npmimulter--save
-- 配置文件上傳, cv 原則,修改保存位置和命名規則即可
-- 路由里,回調函數前加一個文件上傳的方法
router.post('',upload,single(' 文件上傳表單 name 名 ') , fn)
-- 控制器判斷是否有文件上傳 (res.file)
如果有用變量儲存文件路徑 =>constfile="/ 路由中配置的保存路徑 /"+req.file.filename
7,mvc 意義
MVC 分層有助于管理復雜的應用程序,因為您可以在一個時間內專門關注一個方面。例如,您可以在不依賴業務邏輯的情況下專注于視圖設計。同時也讓應用程序的測試更加容易。
MVC 分層同時也簡化了分組開發。不同的開發人員可同時開發視圖、控制器邏輯和業務邏輯。
8 ,總結
Node.js 實現了前后端分離,把 mvc 理解之后,所有的操作都是按部就班,前端請求到后端數據,只用根據請求到的數據來渲染頁面,后端控制器里主要負責業務邏輯,模型里面保存的是數據 (mongodb 是非關系型數據庫,需要轉化成關系型數據庫 ) 。控制器聯系著顯示層和模型,它決定后端返回什么數據,前端能拿到什么數據
本文由 好程序員 web 前端培訓學員總結。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。