Rabbitmq Senecajs&;兔子';amqp';运输不';我不能完全工作
我有一个简单的Senecajs和RabbitMQ设置 听众Rabbitmq Senecajs&;兔子';amqp';运输不';我不能完全工作,rabbitmq,seneca,Rabbitmq,Seneca,我有一个简单的Senecajs和RabbitMQ设置 听众 // foo.js (listener) var seneca = require('seneca')(); seneca .use('seneca-amqp-transport') .add({ "role": "foo", "cmd": "ping" }, (args, done) => { done(null, { result: "Hi FOO" }); }) .listen
// foo.js (listener)
var seneca = require('seneca')();
seneca
.use('seneca-amqp-transport')
.add({
"role": "foo",
"cmd": "ping"
}, (args, done) => {
done(null, { result: "Hi FOO" });
})
.listen({
type: 'amqp',
pin: 'cmd:ping',
url: 'amqp://guest:guest@localhost:5672'
});// default - 10101
客户端
// app.js (client)
var seneca = require('seneca');
var foo = seneca()
.use('seneca-amqp-transport')
.client({
type: 'amqp',
pin: 'role:foo,cmd:ping',
url: "amqp://guest:guest@localhost:5672"
})
.act('role:foo,cmd:ping', { message: 'Aha!' }, (err, response) => {
if (err) console.error(err);
else console.log(response);
});
package.json
...
"dependencies": {
"seneca": "^3.17.0",
"seneca-amqp-transport": "^2.2.0"
}
...
当我运行这两个文件(node foo.js然后是node app.js)时,app.js抛出以下错误:
code: 'act_execute',
seneca: true,
package: 'seneca',
msg:
'seneca: Action cmd:ping,role:foo failed: Cannot read
property \'pattern\' of undefined.',
details:
{ message: 'Cannot read property \'pattern\' of undefined',
pattern: 'cmd:ping,role:foo',
fn:
{ [Function: transport_client]
id:
'pg:cmd:ping,role:foo,pin:role:foo,cmd:ping,type:amqp,url:amqp://guest:guest@0.0.0.0:5672' },
callback: [Function],
instance: 'Seneca/hhdy5dxvtas8/1574507599580/4684/3.17.0/-',
callpoint: undefined,
'orig$':
TypeError: Cannot read property 'pattern' of undefined
代码:'act_execute',
塞内卡:是的,
包装:'塞内卡',
味精:
'seneca:Action cmd:ping,role:foo失败:无法读取
未定义的属性“pattern\”,
细节:
{消息:'无法读取未定义'',
模式:“cmd:ping,role:foo”,
fn:
{[功能:传输\客户端]
身份证件:
'pg:cmd:ping,role:foo,pin:role:foo,cmd:ping,type:amqp,url:amqp://guest:guest@0.0.0.0:5672' },
回调:[函数],
实例:“Seneca/hhdy5dxvtas8/1574507599580/4684/3.17.0/-”,
调用点:未定义,
“原始$”:
TypeError:无法读取未定义的属性“pattern”
然而,我可以清楚地看到(在RabbitMQ仪表板中)这些连接已经建立
这是我第一次使用Senecajs和RabbitMQ…我做错了什么?似乎将var“{legacy:{meta:true}}”添加到Seneca initializator解决了这个问题
var seneca = require('seneca')({legacy: {meta:true}});