< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

摘要: Sphinx是由俄罗斯人Andrew Aksyonoff开发的一个可以结合MySQL,PostgreSQL全文检索引擎。意图为其他应用提供高速、低空间占用、高结果 相关度的全文搜索功能。是做站内全文搜索的一把利器。sphinx已经出现很多年,并不是一个新鲜技术,但如今仍被广泛使用者。但由于IT技术的... 阅读全文
posted @ 2015-10-10 18:23 Alvin_jstu 阅读(1787) 评论(0) 推荐(0) 编辑
摘要: 上篇我们使用nodejs实现了一个express4的网站构建配置,但一个有面的网站怎么可以缺少一个数据库呢。现在较为流行的就是使用MONGODB来作为nodejs网站引用的数据库,可能它与nodejs继承的比较好的原因。本片就是介绍nodejs+express+mongodb如何结合起来,并实现一些... 阅读全文
posted @ 2015-08-23 01:04 Alvin_jstu 阅读(3175) 评论(0) 推荐(0) 编辑
摘要: 本篇主要介绍一下在windows平台下采用nodejs+express4框架+Mongodb实现网站的开发。其实本人是不赞同在Windows平台下使用node.js进行开发,但由于公司后台工程师都是采用windows平台,那我们就必须妥协啦。本片主要介绍一下如何对nodejs,express,mon... 阅读全文
posted @ 2015-08-23 00:29 Alvin_jstu 阅读(6267) 评论(6) 推荐(3) 编辑
摘要: 上一篇,了解了FastDFS是什么东东,一般稍微大一的网站都会做文件分离存储,FastDFS这轻型的分布式文件存储方式,非常有用。此图片截取博友(张占岭)的勿喷下面我们就了解一下,FastDFS在.net平台下如何实现上传和下载功能。咱用了WINFOM实现了一个简单的DEMO:左侧为tracker可... 阅读全文
posted @ 2015-08-18 16:15 Alvin_jstu 阅读(4120) 评论(4) 推荐(3) 编辑
摘要: FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务。(百科)本文详细介绍了FastDFS在centos系统上的详细安装过程,在从机上使用了nginx实现了h... 阅读全文
posted @ 2015-08-10 16:11 Alvin_jstu 阅读(5763) 评论(3) 推荐(0) 编辑
摘要: 大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够。到了数据业务层、数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢失的话,后果更是 不堪设想。这时候,我们会考虑如何减少数据库的联接,一方面采用优秀的代码框架,进行代... 阅读全文
posted @ 2014-12-14 11:47 Alvin_jstu 阅读(314398) 评论(25) 推荐(9) 编辑
摘要: 在大型网站搭建时,都会考虑如果用户量每日不断增加,大量的并发访问,会不会给网站、数据库带来崩盘的灾难。今天我们就讨论一下,现实中如何解决这些问题的一套最为容易实现的方案。控制并发,大家都会首先考虑的就是分布式、负载均衡等经常听到的It名词。那网站如何才能实现负载均衡呢,除了世面上的一些负载均衡器外,... 阅读全文
posted @ 2014-12-13 12:26 Alvin_jstu 阅读(11450) 评论(5) 推荐(5) 编辑
只有注册用户登录后才能阅读该文。 阅读全文
posted @ 2014-11-30 22:00 Alvin_jstu 阅读(101) 评论(2) 推荐(1) 编辑
只有注册用户登录后才能阅读该文。 阅读全文
posted @ 2014-11-30 12:33 Alvin_jstu 阅读(528) 评论(5) 推荐(4) 编辑
摘要: SSIS(SQL Server Integration Service)是从MS SQL 2005开始引入的,是一种ETL(Extract Transform Load)工具,SSIS比普通的ETL更进一步,它是可视化的,用Visual Studio来开发,包文件(*.dtsx)采用的是XML格式。... 阅读全文
posted @ 2014-11-20 00:04 Alvin_jstu 阅读(4826) 评论(0) 推荐(1) 编辑
摘要: 最近这一两年MVC.net逐渐发展,越来越走向成熟,逐渐被许多.net WEB开发程序员所接受。当发展到MVC3.0的时候,已经相当完善了,如今MVC4.0 Beta版已经出来了。MVC3.0-EF是WEB开发中最为常见的模式。ADO.NET EntityFramerwork使用通常有三种方式:DataBase First,Model First,Code First。通常前面两种比较简单,能快速生成类似数据源的控件使用,ADO.NET EntityFramerwork使用会生成edmx的文件,而且是可视的,一般是小型项目的最爱,但不使用于大型的WEB开发项目。原因有:如果在开发的过程中发现需 阅读全文
posted @ 2012-04-27 11:17 Alvin_jstu 阅读(387) 评论(0) 推荐(0) 编辑

apiblue功能很强大,里面支持很多插件,这些插件能够为restfulAPI提供接口文档自动生成,甚至Mockserver的功能,当然,好多插件还是有很多坑的。下面用apiblue实现下面的业务需求:

1、用户上传.md文件,自动启动mock动作,生成一套api测试服务

2、根据.md文档自动生成html接口文档

3、当.md文档发生crud操作的时候,文档和mockServer自动更新

 

drakov将.md文档中的接口自动生成Mockserver,关键代码如下:

 1 var drakov = require('drakov');
 2 var aglio = require('./aglio');
 3 var path = require('path');
 4 var sourceFiles = path.resolve(__dirname, '../mfiles/**.md');
 5 var fs = require("fs");
 6 var argv = {
 7   sourceFiles: sourceFiles,//md文档存储地
 8   serverPort: 4007,
 9   disableCORS: false,//false允许跨域访问
10   debugMode: true,
11   discover: true,
12   public: true,//true允许外围ip访问api,false只能本地访问
13   watch: true,
14   method: ['GET', 'PUT', 'POST', 'DELETE', 'OPTIONS']
15 };
16 module.exports = function (mdFileUrl) {
17   try {
18     if ((mdFileUrl && typeof (mdFileUrl) === "string" && mdFileUrl.indexOf(".md") > -1) || mdFileUrl == '') {
19       drakov.stop(function () {
20         // stopped Drakov
21         console.log('drakov Finished');
22       });
23 
24       drakov.run(argv, function () {
25         console.log('drakov start');
26       });
27       if (mdFileUrl) {
28         aglio(mdFileUrl);
29       }
30     }
31 
32   } catch (e) { } finally { }
33 }

https://github.com/Aconex/drakov 这是drakov  git地址,上面介绍了使用中间件的方式实现drakov与express结合,当时有问题,drakov的watch功能失效,md文档发生改变,无法更新apiServer。

aglio实现将md文档生成HTML接口文档,关键代码如下:
 1 var aglio = require('aglio');
 2 var path = require('path');
 3 var fs = require('fs');
 4 var aglio_options = {
 5   themeTemplate: 'default',//aglio样式
 6   locals: {
 7     myVariable: 125
 8   }
 9 };
10 module.exports = function(mdFileUrl) {
11   if (mdFileUrl) {
12     var targetUrl = mdFileUrl.replace("/mfiles/", "/mock-ui/").replace(".md", ".html");
13     aglio.renderFile(mdFileUrl, targetUrl, aglio_options, function(err, warnings) {
14       if (err)
15         return console.log(err);
16       }
17     );
18   }
19 
20 }

watch监控存放md文件的文件夹,实时通知drakov和aligo,关键代码如下:

 1 var watch = require('watch');
 2 var drakov = require('./drakov');
 3 
 4 module.exports = function (watchDir) {
 5   try {
 6     var filepath;
 7     watch.watchTree(watchDir, function (f, curr, prev) {
 8       if (typeof f == "object" && prev === null && curr === null) {
 9         // Finished walking the tree
10         drakov('')
11       } else if (prev === null) {
12         // f is a new file
13         if (filepath != f) {
14           drakov(f, 'new');
15           filepath = f;
16         }
17       } else if (curr.nlink === 0) {
18         if (filepath != f) {
19           // f was removed
20           drakov(f)
21         }
22       } else {
23         // f was changed
24         drakov(f)
25       }
26     })
27     console.log("watching file...");
28 
29   } catch (e) {
30     console.log(e.message);
31   } finally { }
32 
33 }

ok 根据这三个js,你就可以建一个MockServer,就像 easymock(www.easy-mock.com)一样,试试吧。。对于需求工程师很有帮助

 

欢迎关注我的订阅号

 

posted @ 2017-08-17 22:56 Alvin_jstu 阅读(765) 评论(0) 推荐(0) 编辑
摘要: 今天服务器let'encript证书过期了,年纪大了老忘,不得不把别人的博客看一遍,就是因为我不想定时任务执行acme_tiny.py,还是写个文档记下,很久不写对外博客了,冒个泡。 1、创建普通域名私钥 openssl genrsa 4096 > domain.key 2、单个域名('xxx.xx 阅读全文
posted @ 2017-08-17 22:05 Alvin_jstu 阅读(698) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示