2

appfog で node.js アプリケーションを 1 つ公開していますが、( https://github.com/felixge/node-mysql ) を使用して javascript を介して mysql データベースにアクセスしようとすると、「node-mysql」がインストールされていないようです。これを行う方法は何ですか?appfog サイトにドキュメントはありません。ありがとう。

サーバー app.js のコード:

if(process.env.VCAP_SERVICES){
var env = JSON.parse(process.env.VCAP_SERVICES);
var cre = env['mysql-5.1'][0]['credentials'];
}
var Client = require('mysql').Client,
client = new Client();
client.user = cre.user;
client.password = cre.password;
client.host=cre.host;
client.port=cre.port;
client.database=cre.name;
client.connect();

client.query(
    'SELECT * FROM scores ',
    function selectPlayers(err, results, fields) {
        if (err) {
            console.log("Error: " + err.message);
            throw err;
        }
        console.log("Number of rows: "+results.length);
        console.log(results);
        client.end();
    });

そしてエラー:

module.js:340
throw err;
      ^
Error: Cannot find module 'mysql'
at Function.Module._resolveFilename (module.js:338:15)
4

3 に答える 3

1

こんにちは、node.js をダウンロードしてローカルにインストールするだけで、マシンで npm コマンドが有効になります。その後、AppFog パネルの「サービス」セクションに移動して、mySQL サービス (VCAP_SERVICES) を作成します。

サービスをプロビジョニングしてアプリにバインドすると、AppFog は VCAP_SERVICES という環境変数を作成します。

この変数には、バインドされたサービスのすべての資格情報と接続情報のリストを含む JSON ドキュメントが含まれます。

2 つの MySQL データベース サービスがバインドされているアプリの環境変数の例を次に示します。

{"mysql-5.1":[
{
    "name":"mysql-4f700",
    "label":"mysql-5.1",
    "plan":"free",
    "tags":["mysql","mysql-5.1","relational"],
    "credentials":{
        "name":"d6d665aa69817406d8901cd145e05e3c6",
        "hostname":"mysql-node01.us-east-1.aws.af.cm",
        "host":"mysql-node01.us-east-1.aws.af.cm",
        "port":3306,
        "user":"uB7CoL4Hxv9Ny",
        "username":"uB7CoL4Hxv9Ny",
        "password":"pzAx0iaOp2yKB"
    }
},
{
    "name":"mysql-f1a13",
    "label":"mysql-5.1",
    "plan":"free",
    "tags":["mysql","mysql-5.1","relational"],
    "credentials":{
        "name":"db777ab9da32047d99dd6cdae3aafebda",
        "hostname":"mysql-node01.us-east-1.aws.af.cm",
        "host":"mysql-node01.us-east-1.aws.af.cm",
        "port":3306,
        "user":"uJHApvZF6JBqT",
        "username":"uJHApvZF6JBqT",
        "password":"p146KmfkqGYmi"
    }
}
]}

アプリの言語固有の機能を使用して、環境変数を呼び出すことができます。

Java の場合:

 java.lang.System.getenv("VCAP_SERVICES")

ルビーの場合:

  ENV['VCAP_SERVICES']

Javascript の場合:

 process.env.VCAP_SERVICES

Python の場合:

 os.getenv("VCAP_SERVICES")

PHP の場合:

 getenv("VCAP_SERVICES")
于 2013-01-07T19:59:00.197 に答える
1

追加する必要があります

"mysql": "2.0.x || 2.1.x",

package.json ファイルの依存関係に追加してから、

npm install

Appfog のドキュメントはこちらで確認できます。依存関係管理に関するセクションがあります

于 2013-01-04T22:58:07.293 に答える