我正在尝试使用这些设置在appfog.com上托管的node.js服务器连接到数据库:
var client = mysql.createConnection({
host: 'mysql-node01.eu-west-1.aws.af.cm',
user: '****@gmail.com',
password: '*******',
database: 'd2dc10d6a450048b587114fa9b11756ed',
port: 3306
});
我很确定主机,数据库和端口是不正确的,但我不知道要使用哪些值,即我应该使用localhost吗?
答案 0 :(得分:1)
使用VCAP_SERVICES环境var中的db凭据,不要对它们进行硬编码。在AppFog上启动应用程序时会提供凭据。请参阅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
});
我创建了一个npm包,以帮助获得生产和开发凭据。见AppFog Env
如何使用它:
首先使用本地开发人员数据库凭据设置本地env var:
export DEV_DB_CREDS='{ "username": "root", "name": "dev-db-name" }'
然后获取应用中的信用:
var service = appfog.getService('mysql-db-name', process.env.DEV_DB_CREDS)
var creds = service.credentials
此方法允许相同的代码在本地和生产中工作。