码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2019-10-02 21:25:10      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:url   工作   fail   框架   puts   高效   ade   status   select   

技术图片

FRONT-END SKILLS

技术图片

中间件定制平台

技术图片

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

技术图片

前端工程

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

技术图片

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

1
2
3
4
5
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,简化数据库开发工作量

1
2
3
4
5
6
7
8
9
10
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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对象的操作

1
2
3
4
5
6
7
8
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,直观管理数据库的多表操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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的前后端分离


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

标签:url   工作   fail   框架   puts   高效   ade   status   select   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!