0

I'm trying to connect to a database using a node.js server both hosted on appfog.com using these settings:

var client = mysql.createConnection({
   host: 'mysql-node01.eu-west-1.aws.af.cm',
   user: '****@gmail.com',
   password: '*******',
   database: 'd2dc10d6a450048b587114fa9b11756ed',
   port: 3306
});

I'm pretty sure the host, database and maybe port are incorrect but I don't know which values to use, i.e. should I use localhost?

1 Answer 1

1

Use the db credentials from the VCAP_SERVICES environment var and do not hard code them. The credentials are provided when the app is started on AppFog. See the Appfog Node Docs

var env = JSON.parse(process.env.VCAP_SERVICES);
var creds = env['mysql-5.1'][0]['credentials']; # grabs the creds for the first mysql database

var client = mysql.createConnection({
   host: creds.hostname || 'localhost',
   user: creds.username,
   password: creds.password,
   database: creds.name,
   port: creds.port || 3306
});

I created a npm package to help facilitate getting production and development credentials. See AppFog Env

How to use it:

First set a local env var with your local dev database credentials:

export DEV_DB_CREDS='{ "username": "root", "name": "dev-db-name" }'

Then get the creds in the app:

var service = appfog.getService('mysql-db-name', process.env.DEV_DB_CREDS)
var creds = service.credentials

This method allows the same code to work locally and in production.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.