好程序員web前端學習教程之Node Js流程

  好程序員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前端培訓學員總結。

相關文章
相關標籤/搜索