I've updated the node.js cfenv package at npm:
- moved from the netherworld of 0.x.y versioned packages to version 1.0.0
- updated some of the package dependencies
- added a new
appEnv.getServiceCreds(spec)
method
In case you're not familiar with the cfenv
package, it's intended to be the
swiss army knife of handling your Cloud Foundry runtime environment variables,
including: PORT
, VCAP_SERVICES
, and VCAP_APPLICATION
.
Here's a quick example that doesn't including accessing services in
VCAP_SERVICES
:
var cfenv = require("cfenv") | |
var appEnv = cfenv.getAppEnv() | |
var server = ... // initialize your server | |
// start the server on the given port and binding host, | |
// and print url to server when it starts | |
server.listen(appEnv.port, appEnv.bind, function() { | |
console.log("server starting on " + appEnv.url) | |
}) |
You can start your server with this kind of snippet, which provides the correct port, binding address, and url of the running server; and it will run locally as well as on CloudFoundry.
For more information, see the cfenv readme.
new API appEnv.getServiceCreds(spec)
Lately I've been finding myself just needing the credentials
property value from
service objects. To make this just a little bit easier than:
var fooService = appEnv.getService(/foo/) | |
if (fooService) { | |
if (fooService.credentials) { | |
doSomethingWith(fooService.credentials.blah) | |
} | |
} |
you can now do this, using the new
appEnv.getServiceCreds(spec)
API:
var creds = appEnv.getServiceCreds(/foo/) | |
if (creds) { | |
doSomethingWith(creds.blah) | |
} |
No need to get the whole service if you don't need it, and you don't have to
type out credentials
all the time :-)
what else?
What other gadgets does cfenv
need? If you have thoughts, don't hesitate
to open an issue, send a pull request, etc.