与其说是一个框架还不如说这是一个Node.js的路由框架。目前实现的功能很简单——只是能对一定的路由进行解析并且执行。
感觉网上发布的大多都太繁琐或者有很多不需要的功能,所以自己定制了一个适合我自己的最简单的小框架。
我们所要做的就是去action目录中实现自己的各个js模块,路由能自己解析。
如你的actions/foo.js下面有一个bar函数,那么直接能通过
http://domain:port/foo/bar
来进行访问。
这里贴一下你的业务逻辑模块所需要实现的代码demo:
exports.action = function(action) {
var self = { };
var sAction = action;
self["index"] = function() {
sAction.write("Hello world!");
}
return self;
}
以后每个URI的第一层相当于一个模块,而第二层相当于一个函数-。 -
东西虽小,主要是应公司的一个项目而生。项目很简单,根本用不到网页渲染,我所要做的只是通过Node.js查询数据输出Json字符串来让客户端获取而已,所以暂时没有模板模块计划。
不过具体情况要视以后情况而定了。项目昨天才开始实施的,目前仍在继续开发和完善中,不过有兴趣的童鞋可以fork下来自己试试。
欢迎fork~
模板就是蛋疼,本来是html的,还要翻译成jade/ejs 最后node耗cpu再翻译成html
今天初步实现了MongoDB的阻塞模式。
因为有时候阻塞模式实在是太常用到了,包括我的这个框架,如果不阻塞的话,内容根本输不出,因为非阻塞那个地方执行完的时候早就已经输出完了。
如果需要用到MongoDB的阻塞模式的话,可以参考下我的代码喔~
今天实现了MySql的shell类。也是同步阻塞模式的。
欢迎fork~
什么东西都阻塞的话, nodejs没有任何的优势, 基本跟坨屎一样, 我基本不用阻塞…
get/post怎么区别呢?
什么意思?
比如同样的路径下 get 请求 和post请求的处理是怎么写?
@yakczh 打开action/index.js,然后在self[“index”]函数里面这么写:
console.log(helper.GET[“key”]); console.log(helper.POST[“key”]);
就好了啊。
PS:这个项目我暂时只是用来传输JSON Api的。
哈 类似php mvc框架
MysqlConnectionQueued.prototype = new bindings.MysqlConnection();
^
TypeError: Cannot read property 'MysqlConnection' of null
这是什么情况
var mysql = require('mysql-libmysqlclient');
也是报同样的错误,是不是缺什么驱动程序?
简单跟express pk了一下
ab -n 1000 -c 60 http://192.168.83.128:5555/index
SevenzJS 71.63 rps
express3 94.17
可能是输出日志影响性能了,在setting.js里没有找到关闭日志的选项
支持原创,支持rest,貌似和@snoopy 的 rrestjs 路由方式类似
如果actions也能象模板那样动态载入,这样就跟php一样了,改了代码就不用重启服务器了
我在这之前玩的是ThinkPHP,所以你懂得-。 -
或者这个东西要你自己再npm一遍?因为貌似他要npm下来之后他自己自动编译一遍的。
-. - 不好意思,没考虑到关闭日志。
@xujun52011 windjs模拟阻塞模式
@xujun52011 我并没有什么东西都用阻塞。其实想一下,对于每个请求之间用非阻塞,对于每个请求的内部还是用阻塞的流程下来,这就已经非常足够了,不是么?可以仔细想一下。
@XadillaX 握爪~
@Nightink 最新的push修正了一些bug。
对了,你有装mysql-devel么?这个是在centos下的名字,在deb可能是libmysql-dev还是libmysql来着,稍微找一下不?
没必要阻塞,回调就行了。本身就是单进程的东西。阻塞了,其他就不能动了。
@XadillaX linux apt-get install mysql-devel 就好了, windows不知道应该装什么
windows的话我也不清楚,可能是mysql的driver?在mysql官网应该又载的吧,libmysql
@firstgeniusboy 对于每个请求之间用非阻塞,对于每个请求的内部还是用阻塞的流程下来,这就已经非常足够了,不是么?还望解惑
@XadillaX 大并发的东西即使卡住一秒对用户也是影响。传统的相应假如界面卡住5秒不动那么用户体验就已经糟糕了。每个请求可能包含不同的操作。比如文件读写之类,这些都不能不考虑,nodejs 基于异步提供高效。这是他的特点。千万不能轻易尝试阻塞。