1

マルチマシンワークスペースの別の NodeJS ランタイムから MySQL ランタイムのデータベースに接続しようとしています。

http://localhost:3000/targetテストでは、ターゲット ユーザーのリストを使用して API を呼び出しています。この API のコードは、データベースで SELECT を実行します。

...

exports.list = function(req, res) {

    req.getConnection(function(err, connection) {

        if (err) {
                console.log("MySQL " + err);
        } else {

              connection.query('SELECT id FROM target', function(err, rows) {

            if (err) {
                console.log("Error Selecting : %s ", err);
            } else {

                ...

ターミナルから得た結果:

get target list from http://localhost:3000/target
MySQL Error: connect ECONNREFUSED 127.0.0.1:3306

ここで、db への接続を定義します。

var express = require('express');
var connection = require('express-myconnection');
var mysql = require('mysql');
var config = require('config');
var connectionConfig = config.get('mysql');
var connectionInstance = connection(mysql, connectionConfig, 'request');

...

app.use(connectionInstance);

app.get('/', function(req, res) {
    res.send('Welcome');
});

app.get('/target', target.list);

....

構成:

{
    "mysql": {
        "host": "localhost",
        "user": "[user]",
        "password": "[password]",
        "database": "[database]"
    },
    "app": {
        "port": 3000,
        "server": "http://localhost"
    }
}

これは、Eclipse Che の db マシンの構成にあるものです。

サーバー構成のスナップショット

これが私のレシピです:

services: db: image: eclipse/mysql environment: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: petclinic MYSQL_USER: petclinic MYSQL_PASSWORD: password MYSQL_ROOT_USER: root mem_limit: 1073741824 dev-machine: image: eclipse/node mem_limit: 2147483648 depends_on: - db elasticsearch: image: florentbenoit/cdvy-ela-23 mem_limit: 2147483648

4

1 に答える 1