为什么要用nodejs做中间层
为什么要用nodejs做中间层
后端出于 性能 和别的原因,提供的接口所返回的 数据格式也许不太适合前端 直接使用。
前端所需的 排序功能、 筛选功能 ,以及到了视图层的 页面展现 ,也许都需要 对接口 所提供的 数据进行二次处理 。这些处理虽可以放在前端来进行,但也许数据量一大便会浪费浏览器性能。因而现今,增加node端便是一种良好的解决方案。
前后端分离demo
http.js (node中间层 )
var formatURL = require('./formatURL.js');
var http = require('http');
const POSThttp = function(request){return new Promise((resolve, reject) => {let body = '';// http模块拿到真实后台api的数据http.get(formatURL(request.body.musicname), function(res){res.on('data', (data) => {body += data;}).on('end', () => {// 格式化const {name,audio: musicUrl,page,album: {name: musicName,picUrl,},artists: [{name: singer,}],} = JSON.parse(body).result.songs[0];const reply = {name,picUrl,musicUrl,page,singer,};resolve(reply);});});});
};
module.exports = POSThttp;
index.js(前端页面)
var express = require('express');
var POSThttp = require('./POSThttp.js');
var bodyParser = require('body-parser');
// 使用body-parser解析post请求的参数,如果没有,req.body为undefined。
var app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true
}));
app.post('/', (req, res) => {POSThttp(req).then((data) => {res.send(data);}).catch((err) => {res.send(err);});
});
app.listen(3000, () => {console.log('open wx-audio server successful!')
});
这几十行代码也就实现了一个简单的中间层的demo,并做到了在中间层格式化参数,便于前端进行使用的过程。
现今网站存在问题
现今大公司的老项目(包括百度、搜狐等公司所采用的后端渲染等),或多或少都会存在这样的一些 问题 :
- 前端代码越来越复杂
- 前后端依旧高度耦合
- 无法良好的支持跨终端
前辈们提出的解决方案
前端代码越来越复杂,我们希望尽可能地减少工作量,开始使用类似MV*的分层结构,使前端后分离成为必要;
前端需要处理更多的工作,希望有权操控View,Router(如:SPA的尝试);
各种终端设备的兴起,需要我们把页面适配到更多的地方。
客户端的MVC
关于MVC的定义:
MVC是一种设计模式,它将应用划分为3个部分:数据(模型)、展现层(视图)和用户交互(控制器)。换句话说,一个事件的发生是这样的过程:
- 用户和应用产生交互。
- 控制器的事件处理器被触发。
- 控制器从模型中请求数据,并将其交给视图。
- 视图将数据呈现给用户。
我们不用类库或框架就可以实现这种MVC架构模式。关键是要将MVC的每部分按照职责进行划分,将代码清晰地分割为若干部分,并保持良好的解耦。这样可以对每个部分进行独立开发、测试和维护。
原文地址: https://blog.csdn.net/baidu_31333625/article/details/66970196
为什么要用nodejs做中间层相关推荐
- nodejs做中间层_nodejs做中间层,向后端取数据
router.get('/', function(req, res, next) { var post_data={username:'yuzhou001',password:'123456'};// ...
- 教程: nodejs 做微信公众号开发,回复 xml 消息
教程: nodejs 做微信公众号开发,回复 xml 消息 首先需要你的后台跟服务器已经可以建立连接,这个不再冗述看官方教程就好 接入指南 .此篇介绍的是如何获取用户发来的信息,并回复它. 一.接收 ...
- nodejs php做平台,用nodejs做一套康养管理系统(1)--基础框架搭建
用nodejs做一套康养管理系统(1)--基础框架搭建 这两天准备开始一个康养项目管理系统的开发,闲来无事想将整个流程写下来,并将本项目开发代码开源.首先本次先梳理下结构,画一个拓扑结构图,再根据结构 ...
- 如何做一个国产数据库(六) 网络传输 nodejs做测试客户端
如何做一个国产数据库一 如何做一个国产数据库二 如何做一个国产数据库三 如何做一个国产数据库四 如何做一个国产数据库五 网络实战服务器 我们再四中说过使用tcp进行协议的链接,对我们所定义的协议如果有 ...
- 用 nodejs 做反向代理服务器
时下不少场景,都是申请一个 VPS 主机来托管运行 Web 项目的,小弟我也不例外--购买了一个小型的 CentOS VPS 使用着.在使用的过程中,面临一个问题,就是同一类型的服务端环境还好--但如 ...
- Nodejs做后端,实现文件压缩下载的几种方案(archiver、compressing、linux的zip命令):
一. Archiver 1. 安装 npm install archiver 2. 使用 由于需要做文件操作,所以我们需要将fs库也引进来 先创建一个可写流,用于传入压缩包数据 再创建一个archiv ...
- 用NodeJs做一个小爬虫
作者:北京起步科技前端研究员,专注分享HTML5 App快速开发工具 WeX5 的黑魔法以及相应的前端技术. 前言 利用爬虫可以做很多事情,单身汉子们可以用爬虫来收集各种妹子情报,撩妹族们可以用爬虫收 ...
- 用nodejs做一个svn密码修改页面
linux上配置好svn服务后,管理修改密码还得去手工修改passwd这个文件,略麻烦,其实网上应该有配套的web管理修改界面程序.但我想自己用nodejs写一个,因为用node不用配置复杂的服务器. ...
- [electron 工具] 使用 electron、vue 和 nodejs 做一个网件路由器 SOAP API 测试工具之一 ( 简介 )...
(简介直接将主页的介绍复制过来好了) Soap-Sender 主页 1.0.1 更新记录 优化基本设置页面判断 IP 和密码的响应时间 保存基本设置页面的设置 历史记录添加 Response Time ...
最新文章
- jvm性能调优实战 -56没有WHERE条件的SQL语句引发的OOM MAT 排查步骤
- 领域驱动设计,盒马技术团队这么做
- python爬虫小工具——editplus
- js判断字符串中某个字母出现次数最多
- android svg指纹录取动画_你知道几种前端动画的实现方式?
- DAY04 WINDOWS 文件的共享以及FTP服务器的搭建
- ajax上传 java_使用Ajax进行文件与其他参数的上传功能(java开发)
- Linux系统编程——vfork() 函数详解
- poj Washing Clothes挺好的一道01背包
- java冒险岛_JAVA开发类似冒险岛的游戏Part1
- 用MediaCreationTool做纯净版Windows 10系统U盘
- 中国网络游戏未来发展方向
- 计算机二级vbf资源百度云,2018年计算机二级考试考前冲刺卷
- L3级自动驾驶接管实验测试平台及其应用研究
- python 制作电子相册 视频,如何将多张图片制作成电子相册呢
- 全面提高影像科图像质量(二)——CT板块
- 判断一个数是否为两个素数乘积_如何高效筛选素数?
- 提高晚上学习效率的10个方法
- condex i7p php q_十大最流行PHP框架排名
- 如何为 Exchange 用户添加联系人头像
热门文章
- spark.mllib:bagging方法
- 聊聊高并发(二十)解析java.util.concurrent各个组件(二) 12个原子变量相关类
- Spine 2D animation for games
- spring4.0之二:@Configuration的使用
- Nubiers to follow
- ORACLE PL/SQL编程之六:把过程与函数说透(穷追猛打,把根儿都拔起!)
- #!(sha-bang)--脚本的开始
- RedHat Linux AS4 LAMP经典网站搭建实例
- Delphi中的时间操作技术(1)
- Table还是CSS,请您说说您的见解