Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.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
使用MySQL数据源将Strongloop/Loopback部署到Openshift时出错_Mysql_Openshift_Loopbackjs_Strongloop - Fatal编程技术网

使用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", "

我一直在尝试使用MySQL数据源应用程序将Strongloop/Loopback部署到Openshift,但没有成功。以下是我遵循的步骤

  • 已在我的Windows 7上安装节点
  • npm是否安装了-g strongloop
  • 创建了一个数据源,遵循此
  • 我没有使用MongoDB,而是使用MySQL。下面是我的设置
  • package.json

    {
      "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创建了应用程序。不知何故,节点相关变量没有设置。另外,我要指出的是,我可以打开,我可以看到我创建的用户和演示。只有当我单击自定义模型的其中一个方法时,我才会得到错误。