前后端分离(二)淘宝基于NODEJS的前后端分离

FRONT-END SKILLS

中间件定制平台

“中间件定制平台”项目中用到的SKILLS

前端工程

1,纯静态的前台工程,不依赖web server,可独立工程、独立开发

2、开发过程使用JSON file/MockJS,通过配置切换Angular Service数据源

12345
window.__service.factory('templateRES',function($resource) {var url = framework.getFinalURL('api/template/:method/1','../template/api/:method.json');var json = $resource(url,{});return json;});

3、使用AngularJS,构建完善的前端MVC,简单高效的实现业务逻辑


4、使用Bootstrap做UI框架,使用Angular封装过的KendoUI/jQWidgets等UI组件,实现复制交互控件

4-2、组件的封装和组织


4-3、组件的HTML化使用

4-4、组件的MVC化控制

后端工程

1、Sequelize实现ORM,简化数据库开发工作量

12345678910
module.exports = function (sequelize, DataTypes) {  var WebSite = sequelize.define('Website', {    name: DataTypes.STRING,    status: DataTypes.INTEGER  }, {    tableName: 'bf_website',    timestamps: false  });  return WebSite;}

1-2、Sequelize的Models

1234567891011121314151617
function (_) {  _ = _ || {};  this.id = _.id || 0;  this.status = _.status || 0;  this.name = _.name || '';}Website.findById = function (callback) {  Website.find({ where: {'id': this.id } } ).complete(function (err, obj) {    callback(err, obj);  });};Website.prototype.save = function(callback) {  Website.create(this).complete(function (err, obj) {    callback(err, obj);  });};module.exports = Website;

2、使用LinqJS,进一步简化ORM对象的操作

12345678
var Enumerable = require('linq');var xpath = Enumerable.from(xpathArr).select(function(xpath){  if(xpath.name == inputs.xpath.name){    xpath = 'new value';  }  return xpath;}).toArray();

3、使用ThenJS,直观管理数据库的多表操作

123456789101112131415161718
then(function(defer){  WebsiteDomain.del(inputs.ids , defer);}).then(function(defer, value){  Xpath.delByDomainId(inputs.ids, defer);}).all(function (defer, err) {  if(!err){    callback(null, {      code: '00',message: 'success.'    });  }}).fail(function (defer, err) {  callback(null, {    code: '01',message: err  });});

4、自行开发的API系统(Model Proxy?),使NodeJS后端服务化,直接向前端开放业务接口

4-2、API的调用

实践中的全端开发技术家族

原文:大专栏  前后端分离(二)淘宝基于NODEJS的前后端分离

原文地址:https://www.cnblogs.com/wangziqiang123/p/11618261.html

时间: 2024-10-12 13:21:41

前后端分离(二)淘宝基于NODEJS的前后端分离的相关文章

也谈基于NodeJS的全栈式开发(基于NodeJS的前后端分离)

随着不同终端(Pad/Mobile/PC)的兴起,对开发人员的要求越来越高,纯浏览器端的响应式已经不能满足用户体验的高要求,我们往往需要针对不同的终端开发定制的版本.为了提升开发效率,前后端分离的需求越来越被重视,后端负责业务/数据接口,前端负责展现/交互逻辑,同一份数据接口,我们可以定制开发多个版本. 这个话题最近被讨论得比较多,阿里有些BU也在进行一些尝试.讨论了很久之后,我们团队决定探索一套基于NodeJS的前后端分离方案,过程中有一些不断变化的认识以及思考,记录在这里,也希望看到的同学参

基于NodeJS的全栈式开发(基于NodeJS的前后端分离)

也谈基于NodeJS的全栈式开发(基于NodeJS的前后端分离) 前言 为了解决传统Web开发模式带来的各种问题,我们进行了许多尝试,但由于前/后端的物理鸿沟,尝试的方案都大同小异.痛定思痛,今天我们重新思考了“前后端”的定义,引入前端同学都熟悉的NodeJS,试图探索一条全新的前后端分离模式. 随着不同终端(Pad/Mobile/PC)的兴起,对开发人员的要求越来越高,纯浏览器端的响应式已经不能满足用户体验的高要求,我们往往需要针对不同的终端开发定制的版本.为了提升开发效率,前后端分离的需求越

基于NodeJS进行前后端分离

1.什么是前后端分离 传统的SPA模式:所有用到的展现数据都是后端通过异步接口(AJAX/JSONP)的方式提供的,前端只管展现. 从某种意义上来说,SPA确实做到了前后端分离,但这种方式存在两个问题: WEB服务中,SPA类占的比例很少.很多场景下还有同步/同步+异步混合的模式,SPA不能作为一种通用的解决方案. 现阶段的SPA开发模式,接口通常是按照展现逻辑来提供的,而且为了提高效率我们也需要后端帮我们处理一些展现逻辑,这就意味着后端还是涉足了view层的工作,不是真正的前后端分离. 现阶段

淘宝API Nodejs的实现

关于<淘宝API Nodejs的实现>这是个很忧伤的故事~~ 体验了win10,目前来说还是不如意的,一些应用程序的卡顿,发热~~难以忍受了.只好重装了系统,可是可是!!! 前段时间写的nodejs项目 就这样没了!忘记了webstorm默认项目存在了C盘!!! 还是要养成记录的习惯呀! 好吧,重新来过! 第一步:百度:淘宝api nodejs 已经有前人为我们铺路了,http://www.cnblogs.com/mz121star/archive/2013/05/10/3070974.htm

基于NodeJS的全栈式开发

随着不同终端(Pad/Mobile/PC)的兴起,对开发人员的要求越来越高,纯浏览器端的响应式已经不能满足用户体验的高要求,我们往往需要针对不同的终端开发定制的版本.为了提升开发效率,前后端分离的需求越来越被重视,后端负责业务/数据接口,前端负责展现/交互逻辑,同一份数据接口,我们可以定制开发多个版本. 这个话题最近被讨论得比较多,阿里有些BU也在进行一些尝试.讨论了很久之后,我们团队决定探索一套基于NodeJS的前后端分离方案,过程中有一些不断变化的认识以及思考,记录在这里,也希望看到的同学参

基于 koajs 的前后端分离实践

一.什么是前后端分离? 前后端分离的概念和优势在这里不再赘述,有兴趣的同学可以看各个前辈们一系列总结和讨论: 系列文章:前后端分离的思考与实践(1-6) slider: 淘宝前后端分离实践 知乎提问: 如何评价淘宝 UED 的 Midway Framework 前后端分离? Web 前后端分离的意义大吗? 尤其是<前后端分离的思考与实践>系列文章非常全面的阐述了前后端分离的意义和技术实现.如果不想看上面的文章,可以在脑海里留下这样一个轮廓就好: 本文主要阐述趣店团队基于Koajs的前后端分离实

angularjs 结合 nodejs 开发前后端的一些探索和思考

angularjs是近年很火的一个前端MV*架构,拥有良好的社区,文档支持,在设计上使用沙箱模式,并且实现了注入依赖,提供了非常好的代码测试.今年在github上关于angularjs的插件也是层出不穷.本人也将angularjs使用在若干个实际的项目上,个人感觉,如果有使用jquery及相关插件经历的同学,可能会在使用上有一些不适应,但是整体说了,入门还是不是特别的难,不过当遇到问题的时候,建议在angularjs的社区或者stackfollow中找找,或者是看看angularjs的源码. n

《淘宝技术这十年》读书笔记 (一).淘宝网技术简介及来源

我似乎是2007年初中看<赢在中国>的时候喜欢上马云的,当时对电脑都不是很了解,更别提阿里巴巴和淘宝网了.但当时还是被马云的几句点评深深地吸引,其中我印象最深的一句话就是"短暂的激情是不值钱的,只有长久的激情才是值钱的",以至于我在本科毕业德育答辩时用的题目就是这句话(德育答辩开题我用的题目也是马云的<If not now,when? If not me,who?>其含义是如果不是现在努力,什么时候努力呢?如果不是为了自己奋斗,又是为谁奋斗呢?).的确,想做成任

手机淘宝 521 性能优化项目揭秘

又是一年双十一,亿万用户都会在这一天打开手机淘宝,高兴地在会场页面不断浏览,面对琳琅满目的商品图片,抢着添加购物车,下单付款.为了让用户更顺畅更方便地实现这一切,做到“如丝般顺滑”,双十一前夕手机淘宝成立了“521”(我爱你)性能优化项目,在日常优化基础之上进行三个方面的专项优化攻关,分别是1)H5页面的一秒法则:2)启动时间和页面帧率提升20%:3)Android内存占用降低50%.优化过程中遇到的困难,思考后找寻的方案,实施后提取的经验都会在下面详细地介绍给读者. 第一章 一秒法则的实现 “