Node.js 项目环回中的自定义连接器
我正在尝试创建自定义环回(3.25.1)连接器 我不需要创建带有外部模块的连接器,这是一个非常简单的连接器,用于建立rabbitmq连接 我在项目根目录下的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 *
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供我检查吗?