好程序員web前端學習教程之Node Js流程1,項目前期準備:css
以express框架爲例前端
npmiexpress-generator-g//全局安裝express框架node
express-e//生成express應用骨架程序員
npmi//安裝依賴web
npmstart//在3000端口監聽ajax
拓展:目前最市面上最流行的node框架有:mongodb
--Sail.js數據庫
Sails.js就像是Node.js平臺上的Rails框架。這是一個可靠可伸縮的開發框架,面向服務的架構,提供數據驅動的API集合。用來開發多玩家遊戲、聊天應用和實時面板引用很是方便,也可用於開發企業級Node.js應用。express
Sails.js基於Node.js,Connect,Express和Socket.io構建。npm
--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前端培訓學員總結。