Rabbitmq Senecajs&;兔子';amqp';运输不';我不能完全工作

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

我有一个简单的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({
    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}});