使用MySQL数据源将Strongloop/Loopback部署到Openshift时出错
我一直在尝试使用MySQL数据源应用程序将Strongloop/Loopback部署到Openshift,但没有成功。以下是我遵循的步骤使用MySQL数据源将Strongloop/Loopback部署到Openshift时出错,mysql,openshift,loopbackjs,strongloop,Mysql,Openshift,Loopbackjs,Strongloop,我一直在尝试使用MySQL数据源应用程序将Strongloop/Loopback部署到Openshift,但没有成功。以下是我遵循的步骤 已在我的Windows 7上安装节点 npm是否安装了-g strongloop 创建了一个数据源,遵循此 我没有使用MongoDB,而是使用MySQL。下面是我的设置 package.json { "name": "loopback-app", "version": "0.0.0", "main": "server/server.js", "
{
"name": "loopback-app",
"version": "0.0.0",
"main": "server/server.js",
"scripts": {
"start": "slc run",
"pretest": "jshint ."
},
"dependencies": {
"compression": "^1.0.3",
"errorhandler": "^1.1.1",
"loopback": "^2.0.0",
"loopback-boot": "^2.0.0",
"loopback-connector-mysql": "^2.1.1",
"loopback-datasource-juggler": "^2.0.0",
"serve-favicon": "^2.0.1"
},
"optionalDependencies": {
"loopback-explorer": "^1.1.0"
}
}
datasources.json
{
"db": {
"name": "db",
"connector": "memory"
},
"mysql": {
"host": "mysql-openshift-db-host",
"port": mysql-openshift-db-port,
"database": "gearname",
"password": "mysql-password",
"name": "mysql",
"connector": "mysql",
"user": "mysql-username"
}
}
model-config.json
{
"_meta": {
"sources": [
"../common/models",
"./models"
]
},
"User": {
"dataSource": "db"
},
"AccessToken": {
"dataSource": "db",
"public": false
},
"ACL": {
"dataSource": "db",
"public": false
},
"RoleMapping": {
"dataSource": "db",
"public": false
},
"Role": {
"dataSource": "db",
"public": false
},
"Demo": {
"dataSource": "mysql",
"public": true
}
}
当在我的机器上本地运行它时,它会工作。但是,在将其部署到Openshift然后转到http:///explorer 并为我的模型尝试其中一种方法
==> strongloop/logs/node.log <==
2015-07-12T14:08:02.538Z pid:27006 worker:supervisor INFO strong-agent not profiling, configuration not found.
2015-07-12T14:08:02.543Z pid:27006 worker:supervisor Generate configuration with:
2015-07-12T14:08:02.545Z pid:27006 worker:supervisor npm install -g strong-cli
2015-07-12T14:08:02.545Z pid:27006 worker:supervisor slc strongops
2015-07-12T14:08:02.546Z pid:27006 worker:supervisor See http://docs.strongloop.com/strong-agent for more information.
Browse your REST API at http://localhost:3000/explorer
Web server listening at: http://localhost:3000/
assert.js:92
throw new assert.AssertionError({
^
AssertionError: options must be an object
at MySQL.SQLConnector.execute (/var/lib/openshift/55a23e52e0b8cdb70700003f/app-root/runtime/repo/node_modules/loopback-connector-mysql/node_module
s/loopback-connector/lib/sql.js:391:3)
at MySQL.find [as all] (/var/lib/openshift/55a23e52e0b8cdb70700003f/app-root/runtime/repo/node_modules/loopback-connector-mysql/node_modules/loopb
ack-connector/lib/sql.js:1051:8)
at Function.find (/var/lib/openshift/55a23e52e0b8cdb70700003f/app-root/runtime/repo/node_modules/loopback-datasource-juggler/lib/dao.js:736:34)
at SharedMethod.invoke (/var/lib/openshift/55a23e52e0b8cdb70700003f/app-root/runtime/repo/node_modules/loopback/node_modules/strong-remoting/lib/s
hared-method.js:207:17)
at HttpContext.invoke (/var/lib/openshift/55a23e52e0b8cdb70700003f/app-root/runtime/repo/node_modules/loopback/node_modules/strong-remoting/lib/ht
tp-context.js:243:12)
at /var/lib/openshift/55a23e52e0b8cdb70700003f/app-root/runtime/repo/node_modules/loopback/node_modules/strong-remoting/lib/remote-objects.js:475:
9
at execStack (/var/lib/openshift/55a23e52e0b8cdb70700003f/app-root/runtime/repo/node_modules/loopback/node_modules/strong-remoting/lib/remote-obje
cts.js:346:7)
at /var/lib/openshift/55a23e52e0b8cdb70700003f/app-root/runtime/repo/node_modules/loopback/lib/application.js:329:13
at /var/lib/openshift/55a23e52e0b8cdb70700003f/app-root/runtime/repo/node_modules/loopback/lib/models/model.js:267:5
at /var/lib/openshift/55a23e52e0b8cdb70700003f/app-root/runtime/repo/node_modules/loopback/lib/models/acl.js:443:19
npm info loopback-app@0.0.0 Failed to exec start script
npm ERR! loopback-app@0.0.0 start: `slc run`
npm ERR! Exit status 8
npm ERR!
npm ERR! Failed at the loopback-app@0.0.0 start script.
npm ERR! This is most likely a problem with the loopback-app package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! slc run
npm ERR! You can get their info via:
npm ERR! npm owner ls loopback-app
npm ERR! There is likely additional logging output above.
npm ERR! System Linux 2.6.32-504.16.2.el6.x86_64
npm ERR! command "/var/lib/openshift/55a23e52e0b8cdb70700003f/strongloop//bin/node/node" "/var/lib/openshift/55a23e52e0b8cdb70700003f/strongloop/bin/n
ode/npm" "start" "-d"
npm ERR! cwd /var/lib/openshift/55a23e52e0b8cdb70700003f/app-root/runtime/repo
npm ERR! node -v v0.10.30
npm ERR! npm -v 1.4.21
npm ERR! code ELIFECYCLE
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /var/lib/openshift/55a23e52e0b8cdb70700003f/app-root/runtime/repo/npm-debug.log
npm ERR! not ok code 0
==> app-root/logs/haproxy.log <==
[WARNING] 192/100828 (395134) : Server express/local-gear is DOWN, reason: Layer4 connection problem, info: "Connection refused", check duration: 0ms.
0 active and 0 backup servers left. 0 sessions active, 0 requeued, 0 remaining in queue.
[ALERT] 192/100828 (395134) : proxy 'express' has no server available!
==>strongloop/logs/node.log app root/logs/haproxy.log您的应用程序需要监听您的openshift ip地址和端口,似乎它仍在尝试监听localhost:3000。在代码中,您还应该确保使用mysql环境变量连接到mysql。以下是一些您应该通读的参考资料:
您能清理节点模块并确保安装了最新的DEP吗?我修改了config.json文件,更改了主机和端口,并使用了“mycloud mydomain.rhcloud.com”和端口80。至于mysql设置,我相信我的设置是正确的,因为我使用的是openshift中env的设置。然而,它仍然抛出相同的错误。还补充说,我使用Strongloop盒带在Openshift中安装了Strongloop。我似乎没有定义一些节点变量。不确定这是否相关。您应该使用端口8080和openshift ip地址(openshift_NODEJS_ip),而不是您的cnameI似乎没有env openshift_NODEJS_ip。我使用Strongloop创建了应用程序。不知何故,节点相关变量没有设置。另外,我要指出的是,我可以打开,我可以看到我创建的用户和演示。只有当我单击自定义模型的其中一个方法时,我才会得到错误。