2013-01-04 39 views
2

我已經一個Node.js應用程式發表在appfog,但是當我試圖通過JavaScript 訪問MySQL數據庫與(https://github.com/felixge/node-mysql),「節點mysql的」似乎沒有安裝,什麼是做到這一點的呢? appfog網站上沒有任何文檔。謝謝。Appfog與node.js如何使用javascript訪問mysql數據庫?

服務器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) 

回答

1

你應該添加

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

的依賴在你的package.json文件,然後做

npm install 

您可以查看Appfog的documentation here。有一節關於依賴關係管理

+0

很多謝謝你,你是對的! – colo

1

Appfog支持NPM,這是在節點中安裝依賴項的標準方式。

您可以通過控制檯與npm install mysql或通過將mysql添加到您的package.json文件並執行npm install來完成。

第二種方式會自動安裝您的應用程序的所有依賴項。

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

+0

非常感謝,你是對的! – colo

1

嗨,你只需要在本地下載和安裝的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") 
+0

這個鏈接(https://docs.appfog.com/services/mysql)有關於如何在AppFog上設置MySQL的強大文檔如果您有機會看看 – d1jhoni1b