摘要: 摘要: 阅读全文dead_horse 2011-11-26 21:05 发表评论 阅读全文
posted @ 2011-11-26 21:05 dead_horse 阅读(108) 评论(0) 推荐(0) 编辑
摘要: connect是一个web server中间件。使用方法:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->varconnect=require('connect');connect(connect.static(__dirname+'/public',{maxAge:0}),function(req,res){res.setHeader('Content-Type','text/html 阅读全文
posted @ 2011-11-26 21:01 dead_horse 阅读(916) 评论(0) 推荐(0) 编辑
摘要: 接触javascript应该有三个月了,但是一直没有认真去学习这门语言的一些特性,现在结合C++的语言特性来分析一下,对自己脑海中的知识做个总结。1、C++是静态语言,js是动态语言。区别如下:静态语言:1.在不执行的时候也能够做类型检测,可以一定程度上的检测出一些逻辑错误。但是过多的声明使得程序变得冗余。2.编写代码开始的时候就要考虑变量和算式应该是什么类型,有利于编写好的、高可用性的程序。3.对编译器提示有作用,同时也对理解代码有作用。问题:灵活性不够,不定义类型无法写程序。动态语言:1.最大优点是代码简洁。2.十分灵活。问题:运行速度相对会慢一些,要做类型检查。最大缺点是不执行就无法检测 阅读全文
posted @ 2011-10-15 02:42 dead_horse 阅读(4686) 评论(0) 推荐(2) 编辑
摘要: 最近在做nodejs的web开发,初次接触到mongoDB这个数据库。 其实之前对关系型数据库的接触也不是很多,不过在刚接触使用mongoDB的时候还是习惯性的把关系型数据库的设计思维带了进去。在设计数据库的时候,还是把一些关系型数据库设计的思维带进去了,没有发挥出mongoDB文档型数据库的优势。mongoDB可以方便的把一些本来mySQL需要通过一对多关系关联的数据通过数组+对象的方式作为一个文档存储到一个collections里面,并且提供了各种API支持对一个文档里面的数组进行操作。 此次实践选用的node中间件是mongoskin,不过惭愧的是基本没有用到mongoski... 阅读全文
posted @ 2011-09-23 15:15 dead_horse 阅读(4880) 评论(1) 推荐(0) 编辑
摘要: 一、编译过程: 1)预处理,生成.i文件 2)转换成为汇编语言,生成.s文件 3)汇编变为目标代码(机器代码),生成.o文件 4)链接目标代码,生成可执行程序。 二、常用编译选项 tips:选项必须独立给出:‘-pg’和‘-p -g’完全不同 -c:编译或汇编源文件,不做连接。 G++ -c test.cpp输出test.o -o file:制定输出文件为file -Wall: 输出所有编译警告(最好加上) -Dmacro=XXX:定义宏。 -shared:生成一个共享库文件 g++ -shared -o libtest.so test.o -fPIC:生成位置无关目标代码,适用... 阅读全文
posted @ 2011-09-22 03:59 dead_horse 阅读(409) 评论(0) 推荐(0) 编辑
摘要: mongoDB是不支持多表查询的,而nodeJS又是异步的,导致多表查询比较麻烦。 一个十分简陋的多表查询方法(只有一个关联条件):先从第一个collection中查询得到数据,将其中两个collection关联的field从中取出来并去重,通过$in在第二个collections中查询。 在写数组去重的时候,发现js语言特性写这种函数比C++轻松太多。Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> varusers=[],uhash={} 阅读全文
posted @ 2011-09-14 01:42 dead_horse 阅读(1846) 评论(0) 推荐(0) 编辑
摘要: 这算是我第一个web的程序,写的各种丑陋不堪..记录一些不算收获的东西。看到哪写到哪。 1、路由中间件:用户登录检测和权限检测可以交给路由中间件去处理。Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->app.post("/application/manage/:id/coopmng",hasLogin,checkChangeAuth("infoRight"),manager.doCoopmng); ch 阅读全文
posted @ 2011-08-24 01:48 dead_horse 阅读(869) 评论(0) 推荐(0) 编辑
摘要: 摘要: 在写node.js的时候,经常会遇到要去数据库的多个地方取得多个数据,然后才能进行下一步的操作的情况。如果是线性执行的语言,通常的做法是一条一条去取,全部取到之后再进行下一步操作。然而在node里面,因为是基于事件的,所以只能够一层一层的在回调函数里面嵌套进去。取到第一个数据之后,执行回调函数去取第二条数据,然后再执行回调函数。 对于node来...阅读全文dead_horse 2011-08-18 15:24 发表评论 阅读全文
posted @ 2011-08-18 15:24 dead_horse 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 最近刚开始接触web开发,学习node.js,在写的时候经常会出现Can't set headers after they are sent这个错误。 发现是在redirect或者render之后,node并不会跳出代码段,中断下面的执行,而是继续往下执行,当再次redirect或者render的时候,就会出现这个错误。 要在redirect和render之前适时加上return,结束它们之后的代码执行,可以避免这个错误。dead_horse 2011-08-12 01:08 发表评论 阅读全文
posted @ 2011-08-12 01:08 dead_horse 阅读(652) 评论(0) 推荐(1) 编辑
摘要: lower_bound&upper_bound是二分查找的一种版本,在已排序的区间中寻找可插入value的第一个位置和第一个不小于value的位置。lower_bound的实现(forward_iteratror版本,其random_access_iterator版本不需要用distance函数,直接用+):template<classForwardIterator,classT,classDistance>ForwardIterator__lower_bound(ForwardIteratorfirst,ForwardIteratorlast,constT&val 阅读全文
posted @ 2011-06-08 01:06 dead_horse 阅读(310) 评论(0) 推荐(0) 编辑