Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 项目环回中的自定义连接器_Node.js_Rabbitmq_Loopbackjs - Fatal编程技术网

Node.js 项目环回中的自定义连接器

Node.js 项目环回中的自定义连接器,node.js,rabbitmq,loopbackjs,Node.js,Rabbitmq,Loopbackjs,我正在尝试创建自定义环回(3.25.1)连接器 我不需要创建带有外部模块的连接器,这是一个非常简单的连接器,用于建立rabbitmq连接 我在项目根目录下的connectors/rabbitmq.js中有一个文件 rabbitmq.js的内容是 const Connector = require('loopback-connector').Connector; /** * Initialize the connector against the given data source *

我正在尝试创建自定义环回(3.25.1)连接器

我不需要创建带有外部模块的连接器,这是一个非常简单的连接器,用于建立rabbitmq连接

我在项目根目录下的
connectors/rabbitmq.js
中有一个文件

rabbitmq.js
的内容是

const Connector = require('loopback-connector').Connector;

/**
 * Initialize the  connector against the given data source
 *
 * @param {DataSource} dataSource The loopback-datasource-juggler dataSource
 * @param {Function} [callback] The callback function
 */
exports.initialize = function initializeDataSource(dataSource, callback) {
  dataSource.connector = new RabbitMQ(dataSource.settings);
};

function RabbitMQ(settings) {
  // Call the super constructor with name and settings
  Connector.call(this, 'rabbitmq', settings);
  //...
}

RabbitMQ.prototype.connect = function (cb) {
  // ...
};

RabbitMQ.prototype.disconnect = function (cb) {
  // ...
};
启动我的项目时,我收到以下错误消息

 WARNING: LoopBack connector "rabbitmq" is not installed as any of the following modules:

  ./connectors/rabbitmq
 loopback-connector-rabbitmq
 rabbitmq

 To fix, run:

     npm install rabbitmq --save

 /usr/src/app/node_modules/loopback/lib/application.js:280
     throw err;
     ^

 Error: Cannot create data source "rabbitmq":
 WARNING: LoopBack connector "rabbitmq" is not installed as any of the following modules:

  ./connectors/rabbitmq
 loopback-connector-rabbitmq
 rabbitmq

 To fix, run:

     npm install rabbitmq --save

     at DataSource.setup (/usr/src/app/node_modules/loopback-datasource-juggler/lib/datasource.js:448:26)
     at new DataSource (/usr/src/app/node_modules/loopback-datasource-juggler/lib/datasource.js:138:8)
     at Registry.createDataSource (/usr/src/app/node_modules/loopback/lib/registry.js:364:12)
     at dataSourcesFromConfig (/usr/src/app/node_modules/loopback/lib/application.js:570:19)
     at Function.app.dataSource (/usr/src/app/node_modules/loopback/lib/application.js:269:14)
     at /usr/src/app/node_modules/loopback-boot/lib/executor.js:191:9
     at /usr/src/app/node_modules/loopback-boot/lib/executor.js:282:5
     at Array.forEach (<anonymous>)
     at forEachKeyedObject (/usr/src/app/node_modules/loopback-boot/lib/executor.js:281:20)
     at setupDataSources (/usr/src/app/node_modules/loopback-boot/lib/executor.js:181:3)
     at execute (/usr/src/app/node_modules/loopback-boot/lib/executor.js:39:3)
     at bootLoopBackApp (/usr/src/app/node_modules/loopback-boot/index.js:154:3)
     at Object.<anonymous> (/usr/src/app/server/server.js:63:1)
     at Module._compile (internal/modules/cjs/loader.js:776:30)
     at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
     at Module.load (internal/modules/cjs/loader.js:653:32)
 Emitted 'error' event at:
     at DataSource.setup (/usr/src/app/node_modules/loopback-datasource-juggler/lib/datasource.js:448:12)
     at new DataSource (/usr/src/app/node_modules/loopback-datasource-juggler/lib/datasource.js:138:8)
     [... lines matching original stack trace ...]
     at Module.load (internal/modules/cjs/loader.js:653:32)
 npm ERR! code ELIFECYCLE
 npm ERR! errno 1
 npm ERR! service-rest@1.0.0 fixtures: `node bin/fixtures/index.js`
 npm ERR! Exit status 1
 npm ERR!
 npm ERR! Failed at the service-rest@1.0.0 fixtures script.
 npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

 npm ERR! A complete log of this run can be found in:
 npm ERR!     /root/.npm/_logs/2019-07-23T09_31_48_754Z-debug.log
 npm ERR! code ELIFECYCLE
 npm ERR! errno 1
 npm ERR! service-rest@1.0.0 launch: `npm run fixtures && npm start`
 npm ERR! Exit status 1
 npm ERR!
 npm ERR! Failed at the service-rest@1.0.0 launch script.
 npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

 npm ERR! A complete log of this run can be found in:
 npm ERR!     /root/.npm/_logs/2019-07-23T09_31_48_808Z-debug.log
警告:环回连接器“rabbitmq”未作为以下任何模块安装:
/连接器/rabbitmq
环回连接器rabbitmq
兔子
要修复,请运行:
npm安装rabbitmq--保存
/usr/src/app/node_modules/loopback/lib/application.js:280
犯错误;
^
错误:无法创建数据源“rabbitmq”:
警告:环回连接器“rabbitmq”未作为以下任何模块安装:
/连接器/rabbitmq
环回连接器rabbitmq
兔子
要修复,请运行:
npm安装rabbitmq--保存
在DataSource.setup(/usr/src/app/node_modules/loopback DataSource juggler/lib/DataSource.js:448:26)
在新数据源(/usr/src/app/node_modules/loopback DataSource juggler/lib/DataSource.js:138:8)
位于Registry.createDataSource(/usr/src/app/node_modules/loopback/lib/Registry.js:364:12)
位于dataSourcesFromConfig(/usr/src/app/node_modules/loopback/lib/application.js:570:19)
位于Function.app.dataSource(/usr/src/app/node_modules/loopback/lib/application.js:269:14)
at/usr/src/app/node_modules/loopback boot/lib/executor.js:191:9
at/usr/src/app/node_modules/loopback boot/lib/executor.js:282:5
在Array.forEach()处
在forEachKeyedObject(/usr/src/app/node_modules/loopback boot/lib/executor.js:281:20)
在setupDataSources(/usr/src/app/node_modules/loopback boot/lib/executor.js:181:3)
在执行时(/usr/src/app/node_modules/loopback boot/lib/executor.js:39:3)
在bootLoopBackApp(/usr/src/app/node_modules/loopback boot/index.js:154:3)
反对。(/usr/src/app/server/server.js:63:1)
at模块编译(内部/modules/cjs/loader.js:776:30)
在Object.Module._extensions..js(internal/modules/cjs/loader.js:787:10)
at Module.load(内部/modules/cjs/loader.js:653:32)
在以下位置发出“错误”事件:
在DataSource.setup(/usr/src/app/node_modules/loopback DataSource juggler/lib/DataSource.js:448:12)
在新数据源(/usr/src/app/node_modules/loopback DataSource juggler/lib/DataSource.js:138:8)
[…与原始堆栈跟踪匹配的行…]
at Module.load(内部/modules/cjs/loader.js:653:32)
npm错误!代码失效循环
npm错误!错误1
npm错误!服务-rest@1.0.0fixtures:`node bin/fixtures/index.js`
npm错误!退出状态1
npm错误!
npm错误!服务失败-rest@1.0.0剧本。
npm错误!这可能不是npm的问题。上面可能还有其他日志输出。
npm错误!此运行的完整日志可在以下位置找到:
npm错误/root/.npm/_logs/2019-07-23T09_31_48_754Z-debug.log
npm错误!代码失效循环
npm错误!错误1
npm错误!服务-rest@1.0.0启动:`npm运行装置和npm启动(&N)`
npm错误!退出状态1
npm错误!
npm错误!服务失败-rest@1.0.0启动脚本。
npm错误!这可能不是npm的问题。上面可能还有其他日志输出。
npm错误!此运行的完整日志可在以下位置找到:
npm错误/root/.npm/_logs/2019-07-23T09_31_48_808Z-debug.log
我的文件位于
/connectors/rabbitmq
,我尝试了以下路径,但始终存在相同的问题

connectors/rabbitmq.js
connectors/rabbitmq/index.js
server/connectors/rabbitmq.js
server/connectors/rabbitmq/index.js

我还试图补充一点


app.connector('rabbitmq',require('../connectors/rabbitmq'))
紧跟在
var-app=module.exports=loopback()之后server/server.js
中创建一个文件夹
/connectors/rabbitmq
并在其中执行
npm init
,但我有同样的问题。然后在
package.json
中,确保您有
“main”:“index.js”,
。这样就行了

请参见模块示例

我找到了解决方案:

需要添加

app.connector('rabbitmq', require('../connectors/rabbitmq'))

不要忘记
数据源.json中的
名称
连接器

谢谢你的回答,我将
/connectors/rabbitmq.js
重命名为
/connectors/rabbitmq/index.js
,并在
/connectors/rabbitmq
中制作了一个
nmp I
,我有
“main”:“index.js”,
但仍然有相同的错误您有git repo供我检查吗?