newbeely-nodejs
Version:
简单易用的轻量级nodejs服务框架. 框架简单到只有组件逻辑,不同的组件提供不同的服务,使用外部的配置文件(只有一个配置文件)方便的组合成一个完整的服务框架. 整个服务使用bearcat(网易开源的nodejs面向切面编程的轻量级框架(AOP))管理,极大的解耦组件间的耦合.(关于代码热更新后续开放).
86 lines (65 loc) • 3.07 kB
Markdown
#简介
源生的 node js http模块的包装组件,一般用于http api服务.
#配置
config/services.json
{
"YourName":{
"bean":"httpComponent","host":"localhost","port":29000,"ssl":false,"protocol":"","method":"get|post"
}
}
编写后在项目根目录内创建 app/YourName文件夹, 然后在YourName内创建 context.json 文件 和 get & post 文件夹
context.json
{ "name":"YourName","beans":[] }
工具生成
npm install newbeely-nodejs -g
newbeely init
...
{input 1:YourName}
参数详解
YourName: 自定义组件名称 这个名称可以在工程内任意地方使用 Bearcat.getBean('application').getComponent('YourName') 获得到组件对象.
bean:必须指定为 httpComponent
host:socket监听的主机地址 可以为 0.0.0.0 127.0.0.1 localhost
port:socket监听的端口号
ssl:是否使用openssl协议 false or { pem:"pem",cert:"cert" } 后者证书需要放在 app/YourName目录内
protocol:协议 可选协议 base64 zip rc4 配置格式为 base64|zip|rc4
method:http协议支持的类型 get post 对应的路由文件夹放置在 app/YourName/get & app/YourName/post 内
#路由编码
路由位置
app/YourName/get & app/YourName/post 目录内 对应的http协议get访问 app/YourName/get文件夹内的脚本 post同理.
路由规范
在app/YourName/get目录内创建js脚本文件 文件名为http url的一个路由节点 例如 hello.js 服务编码完成后即可访问 http://localhost:port/hello
代码规范实例:
var Bearcat = require('bearcat');
module.exports = function () {
return Bearcat.getBean({
id: "YourName-get-hello",
func: Hello
});
}
function Hello(){}
/// 规范的一级路由 上面所述的 http://localhost:port/hello 的逻辑处理方法
Hello.prototype.handle = function (msg, next) {
console.log(msg);
next(null,"hello");
}
/// 规范的二级路由 实例: http://localhost:port/hello/world
Hello.prototype.world = function (msg, next){
console.log(msg);
next(null,"hello world.");
}
Message详解
{
httpVersion:"",
route:"",
method:"",
statusCode:"",
headers:"",
params:{},
body:{},
remoteAddress:""
}
params: http url 中传递的参数列表(已转化为JSON object) 例如 http://localhost:port/hello?param1=1¶m2=2 转化后的 params={"param1":"1","param2":2}
body: http协议的消息体 推荐使用json object 可以使用 protocol 内的加密协议加密压缩
消息返回函数 next
第一个参数为错误内容 一旦有错误内容 客户端会收到一个 http status code 为 error.status 的值(默认500).
第二个参数为消息内容 内容会自动按照 protocol协议的逆顺序加密或压缩 加密完成后response给客户端. 完成后连接断开.