node-07-前端路由和后端路由

六-前端路由和后端路由

1 基本概念

什么是路由?举个例子,GET 或 POST 请求时,服务端会维护一个正则配置表,当请求匹配到某一条具体 URL 路径时,就会分发到不同的 Controller,处理完成后,将 HTML 或数据返回给前端,这样就完成了一次 IO 交互操作。这就是目前绝大多数网站所使用的方案,这种方案叫做后端路由,即多页面应用。

对于没有开发过后端,也没有开发过 SPA 的前端来说,「路由」这个名词可能会让人比较困惑,这里的路由并不是指「硬件路由」,也不是网络七层协议中的「网络层路由」,但是其思想原理是一样的。我尽量简单通俗的介绍一下。

假如我们有一台提供 Web 服务的服务器的网络地址是:10.0.0.1,而该 Web 服务又提供了三个可供用户访问的页面,其页面 URI 分别是:
http://10.0.0.1/
http://10.0.0.1/about
http://10.0.0.1/concat
那么其路径就分别是 /,/about,/concat。

当用户使用 http://10.0.0.1/about 来访问该页面时,Web 服务会接收到这个请求,然后会解析 URI 中的路径 /about,在 Web 服务的程序中,该路径对应着相应的处理逻辑,程序会把请求交给路径所对应的处理逻辑,这样就完成了一次「路由分发」,这个分发就是通过「路由」来完成的。

2 后端路由

好处:

服务端渲染后,可以直接返回给浏览器。
SEO 友好。
SEO ( Search Engine Optimization ):汉译为搜索引擎优化 。 指的是,利用搜索引擎的规则来提高网站在有关搜索引擎内的自然排名 。 它的目的是:为网站提供生态式的自我营销解决方案,让其在行业内占据领先地位,获得品牌收益; SEO 包含站外 SEO 和站内 SEO 两方面;为了从搜索引擎中获得更多的免费流量,从网站结构 、 内容建设方案 、 用户互动传播 、 页面等角度进行合理规划,还会使搜索引擎中显示的网站相关信息对用户来说更具有吸引力 。

缺点:

因为模板是由后端编写与维护的,所以前端开发者需要学习 Java 等后端语言,并安装后端服务开发环境。
页面、数据与逻辑混合在一起,维护困难。

3 前端路由

前端路由是单页面富应用(SPA)的核心。SPA 就是在前后端分离的基础上,再加上一层后端路由。路由规则由前端来维护。

它有两种实现方式:

利用 URL 的 hash,即锚点(#),JavaScript 利用 hashChange 事件来监听 URL 是否被改变。此方法在 IE7 及之前的版本需要通过轮询来实现。
HTML5 的 Histroy 模式,它可以让 URL 以 “/” 分隔, 却不会让页面发生跳转(服务端会把接收到的所有请求,都指向同一个 HTML 页面)。
这样 SPA 就只有一个 HTML 页面 ,网站的所有内容都指向这个页面。

优点:

页面持久性

前后端分离

4 注册路由

通俗的说就是写接口

例如

const express = require('express');

const app = express();

//注册post
app.post('/regiter',(req,res)=>{
    //注册逻辑
    res.send('注册成功!');
});
//登录post
app.post('/login',(req,res)=>{
    //登录逻辑
    res.send('登录成功!');
});
//登出get
app.get('/logout',(req,res)=>{
    //登出逻辑
    res.send('登出成功!');
});
//新增post
app.post('/add',(req,res)=>{
    //新增逻辑
    res.send('新增成功!');
});
//删除get
app.get('/delete',(req,res)=>{
    //删除逻辑
    res.send('删除成功!');
});



app.listen(3000,()=>{
    console.log('success');
});
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值