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