新一代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教程

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值