【问题标题】:Appfog with node.js how to access with javascript to mysql databases?Appfog 与 node.js 如何使用 javascript 访问 mysql 数据库?
【发布时间】:2013-01-04 22:46:31
【问题描述】:

我在 appfog 中发布了一个 node.js 应用程序,但是当我尝试通过 javascript 访问 mysql 数据库时 与(https://github.com/felixge/node-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)

【问题讨论】:

    标签: javascript mysql node.js appfog node-mysql


    【解决方案1】:

    你应该添加

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

    到你的 package.json 文件中的依赖,然后做

    npm install
    

    您可以查看 Appfog 的documentation here。有一节是关于依赖管理的

    【讨论】:

      【解决方案2】:

      Appfog 支持 NPM,这是在节点中安装依赖项的标准方式。

      您可以通过控制台使用npm install mysql 执行此操作,也可以将mysql 添加到您的package.json 文件并执行npm install

      第二种方式会自动为你的应用安装所有依赖。

      来源:https://docs.appfog.com/languages/node#node-dep-mgmt

      【讨论】:

        【解决方案3】:

        您好,您只需要在本地下载并安装 node.js,这将在您的计算机上启用 npm 命令,然后转到 AppFog 面板上的“服务”部分为您创建 mySQL 服务 (VCAP_SERVICES)

        当您配置服务并将其绑定到您的应用时,AppFog 会创建一个名为 VCAP_SERVICES 的环境变量。

        此变量包含一个 JSON 文档,其中包含绑定服务的所有凭据和连接信息的列表。

        以下是绑定了两个 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")
        

        在 Ruby 中:

          ENV['VCAP_SERVICES']
        

        在 Javascript 中:

         process.env.VCAP_SERVICES
        

        在 Python 中:

         os.getenv("VCAP_SERVICES")
        

        在 PHP 中:

         getenv("VCAP_SERVICES")
        

        【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-04-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-15
        相关资源
        最近更新 更多