seneca-muxer
是一个可用于 Seneca
框架的插件,用于将多个 action
绑定到一个统一的 action
上,并在原始数据中进行路由。这个插件可以帮助你写出高可读性代码,同时也可以节省你的时间和精力。
简介
seneca-muxer
可以将多个 action
绑定到一个统一的 action
上,然后路由到对应的处理函数中。这些绑定关系是通过 string patterns
来实现的,这样你可以在不修改任何代码的情况下很容易地扩展你的应用。
另外,你可以使用 middleware
对数据进行任何操作,如添加数据或验证。这是一个非常方便的工具,不会给你带来任何麻烦。
安装
npm install seneca-muxer
使用
首先你需要启动 seneca
,并将 seneca-muxer
插件添加到 seneca
中。
const Seneca = require('seneca') const Muxer = require('seneca-muxer') const seneca = Seneca() seneca.use(Muxer)
接下来,你需要使用 add
方法来添加路由关系。
seneca.add('cmd:hello, name:John', function(msg, done) { done(null, {text: `Hello, ${msg.name}!`}) }) seneca.add('cmd:hello, name:Bob', function(msg, done) { done(null, {text: `Hello, ${msg.name}!`}) })
此时,hello
命令只会响应 name
为 John
或 Bob
的请求。
我们可以通过传参来调用 hello
命令:
seneca.act({cmd: 'hello', name: 'John'}, function(err, res) { console.log(res.text) // Hello, John! }) seneca.act({cmd: 'hello', name: 'Bob'}, function(err, res) { console.log(res.text) // Hello, Bob! })
你还可以使用通配符来响应所有的请求。
seneca.add('cmd:hello', function(msg, done) { console.log(`Hello, ${msg.name}!`) done(null, {text: `Hello, ${msg.name}!`}) })
除此之外,你还可以使用 middleware
进行数据处理。
-- -------------------- ---- ------- ------------------------ ----- - -- --------- --- ------ - -------- - ------- - ------ -- ---------------------- ---------- -------- ----- --------- - ------------------- -------------- -------------- ------ ------- --------------- --
对于 name
为 Tom
的请求,所有中间件都会被调用,将 name
修改为 Tommy
。
示例代码
下面是一个完整的示例代码:
-- -------------------- ---- ------- ----- ------ - ----------------- ----- ----- - ----------------------- ----- ------ - -------- ----------------- ------------------------ ----- - -- --------- --- ------ - -------- - ------- - ------ -- ---------------------- ----------- ------------- ----- - ---------- ------ ------- --------------- -- ---------------------- ---------- ------------- ----- - ---------- ------ ------- --------------- -- ----------------------- ------------- ----- - ------------------- -------------- ---------- ------ ------- --------------- -- ---------------------- ---------- -------- ----- --------- - ------------------- -------------- -------------- ------ ------- --------------- -- ---------------- -------- ----- -------- ------------- ---- - --------------------- -- ------ ----- -- ---------------- -------- ----- ------- ------------- ---- - --------------------- -- ------ ---- -- ---------------- -------- ----- -------- ------------- ---- - --------------------- -- ------ ----- -- ---------------- -------- ----- ------- ------------- ---- - --------------------- -- ------ ------ --
总结
seneca-muxer
插件是一个非常方便、高效的工具,它可以帮助你实现高可读性的代码,并减少工作负担。通过此插件,你可以很容易地扩展你的应用,并对数据进行各种操作。希望此文对你有帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005669081e8991b448e2cd6