新一代Node中間層開發模式

Node中間層—淘寶
PHP中間層—Facebook

開發模式的演變

MVC模式
在這裏插入圖片描述
弊端:前後端不分離,後端壓力過大
MVVM模式
在這裏插入圖片描述
優點:前後端分離
弊端:
1、瀏覽器(客戶端)壓力過大,瀏覽器CPU佔用過大
2、不利於SEO,頁面都是由JS生成,SEO檢測的是HTML
3、直接暴露接口,存在安全風險
Node中間層模式
在這裏插入圖片描述
優點:既滿足了前後端分離,也減輕了客戶端壓力,還有利於SEO

技術選型

Node框架選型
Express、Koa(簡化的express)、egg(企業級node開發框架,適用於全站項目)
視圖模板選型
ejs、pug(jade)、art-template
ejs語法

中間層搭建(express+ejs)

目錄結構
在這裏插入圖片描述
app.js文件

const express =require("express");
const app = express();
//中間件
const router = require("./src/router/router.js");
//引入body-parser接收post請求的數據 安裝:npm install body-parser --save
var bodyParser = require('body-parser');
//中間件使用body-parser
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
//靜態目錄設置
app.use(express.static("./static"))
const ejs = require("ejs");
app.set("view engine","ejs");
app.set("views", "./src/views");
app.use("/",router);
app.listen(3300);

router.js文件

const express = require("express");
const router = express.Router();
const index = require("./controll/index.js");
router.get("/",index);
module.exports = router;

index.js文件

const request = require("request");
function index(req,res){
    request({
        url:"http://localhost:3000/",
        method:"GET"
    },function(error,response,body){
        if(!error&&response.statusCode==200){
            let data = JSON.parse(body);
            res.render("./index.ejs",data);
        }
    })
}
module.exports = index;

server.js文件

const express = require("express");
const app = express();
app.get("/",(req,res)=>{
    res.json({
        status:200,
        attr:[{
            name:"小明",
            age:15
        },{
            name:"小紅",
            age:16
        }]
    })
})
app.listen(3000);

效果:
在這裏插入圖片描述

中間層拓展

1、利用pm2(node應用程序管理工具)做集羣

安裝
npm install pm2 -g
啓動(4代表開啓4個進程)
pm2 start app.js -i 4

在這裏插入圖片描述
這樣,前端就可以根據高的訪問,先去做一個分流處理,然後後端再做一次緩壓處理,則能夠很好的解決高併發。
2、利用nginx做負載均衡
3、靜態html、redis減少請求,減輕服務器壓力
redis教程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章