为什么选择SenecaJS ! 作者: 王十三 时间: 2018-10-22 分类: 默认分类 评论 可能是受到 docker 的影响吧, 本人不喜欢太复杂的东西,一直以来的理念就是一个工具就只是在做一件事情。 ** 简单 ** Seneca 是个很简单的框架。内部函数多数也就是使用两个函数 . 添加服务 seneca.add 执行服务 seneca.act 业务项目的时候,我们一般都只是有小数量的服务器,所以在应用上,我们可能不清楚那些服务会高负载,在使用Seneca之后,我们可以轻松吧切换多个服务窗口来支撑单独一条业务线。 ** 开发需要 ** 再接触微信 第三方平台开发的时候,发现对接的服务器需要使用一个对外可访问的地址(IP)。而我们平时并不能保证自己的工作环境有对外的地址。 这个时候,我们只需要保证接口在Seneca上正常运行。然后我们的开发在本地链接远程的微服务,即可。 ** 语法可爱 ** JSON 匹配语法 让我有种暖暖的感觉。
seneca 初识 作者: 王十三 时间: 2018-10-22 分类: NODE.JS 评论 **Seneca是Node.js微服务框架开发工具** 它的目的在于复制架构师和开发人员的服务想法,提供方法把代码融入到由模式所触发的逻辑行为中,这是根据用例所作用的模型。一旦被定义,模式就可以轻松转为API,使用用例和模式来定义消息内容。 **安装 ** npm install seneca --save -dev **入门代码** ```javascript /** * 参考 https://segmentfault.com/a/1190000011130919 **/ let seneca = require('seneca')(); //匹配参数 let pattern = { module: 'demo', action: 'greeting' }; //匹配方法 let action = function (msg, done) { done(null, { answer: 'hello, ' + msg.name }); } seneca.add(pattern, action); // 执行方法 var req = {module: 'demo', action: 'greeting', name:'Marlin'} seneca.act( req, function (error, result){ if ( error ) console.log(error); else console.log(result.answer); }) ``` **运行代码** ```shell hello, Marlin {"kind":"notice","notice":"hello seneca 0j97bzt5lj8q/1540217000612/9065/3.7.0/-","level":"info","seneca":"0j97bzt5lj8q/1540217000612/9065/3.7.0/-","when":1540217000750} ``` ** 结果分析 ** 执行方法中的JSON 对象 'module','action',两个属性与值 都与 匹配参数 中的相同,所以该对象就进入了匹配方法中。