rpc-lite

A simple and easy to use PRC Library

快速开始

服务器

由于还在开发中,所以暂时只有Express的版本,更多的Trigger,正在开发

安装命令

npm i rpc-lite --save

express 的加载方法

var express = require(express.js);
var app = express();
var Mrpc = require("./index");
var mrpc = new Mrpc();

//使其不支持跨域
//mrpc.CROS = false;

//获取express的Trigger, 使用express的路由
app.use("/api",mrpc.getTrigger("express"));

app.listen(80);

绑定函数方法

mrpc.add("test",(p1,p2)=>{
    //可以直接返回 或者选择 返回Promise对象
    return Promise.resolve("test success");
});

获取附件

mrpc.add("test",(p1,p2)=>{
    //通过 this.file 来获取附件
    //this.file 是一个对象,里面包含着你上传的附件,通过上传时参数的名字获取
    //this.file["f1"] 这样获取到的是一个f1附件数组(因为一个参数,可能附带多个附件)
    
    //获取附件的名字
    console.log(this.file["f1"][0].filename);

    return "上传文件成功";
});

浏览器

由于这个库直接基于Promise下开发的,所以浏览器需要加入polyfill

在使用前,请插入库

<!-- Promise的polyfil ,如果需要支持IE,则需要加入 -->
<script src="//cdn.bootcss.com/es6-promise/4.0.5/es6-promise.auto.min.js"></script>


<!-- sql-lite的web版,加载方式还支持 CommonJS,AMD,CMD -->
<script src="//meislzhua.github.io/rpc-lite/dist/mrpc.compile.min.js"></script>

初始化对象

//直接根据路由初始化
var mrpc = new Mprc("/api");

//使用完整路径初始化(记得带上协议),可以跨域
var mrpc = new Mprc("http://local/api");

执行远程函数

//调用方式
//mrpc.run(funcName[,arg1,arg2...])

mrpc.run("test","参数1","参数2").then(function(result){
    //这里打印出远程函数的返回值
    console.log(result);
}).catch(function(err){
    //发生错误的时候,则会触发catch,包括 函数运行发生错误(包括手动抛出),找不到函数等
    //err.code 错误码
    //err.message 错误信息
    //err.data 错误数据(手动throw非Error类型数据,云函数返回Promise.reject 的时候,才有数据)
})

使用扩展

//扩展函数
mrpc.extend({
    //给函数设置附件
    file: {
        //input[type=file] 的id
        el: ["f1","f2"],
        progress:function(p){
            console.log("已发送:",p.loaded,"总大小:",p.total)
        }
    }
}).run("test","参数1","参数2").then(function(result){
    //这里打印出远程函数的返回值
    console.log(result);
})

前端测试方法

后台还没编写好相应的API的时候,可以先用本方法用作开发时的测试

mrpc.isDebug = true;

//添加测试函数
mrpc.debugAdd("localTest",function(){
    var whatYouWant = {want:true};
    return whatYouWant;
})

HomePage

https://github.com/meislzhua/rpc-lite

Repository

git+https://github.com/meislzhua/rpc-lite.git


相关推荐