function evaluateEnvProperty(value, node) {
    var flow = (node && hasOwnProperty.call(node, "_flow")) ? node._flow : null;
    var result;
    if (/^\${[^}]+}$/.test(value)) {
        // ${ENV_VAR}
        var name = value.substring(2,value.length-1);
        result = getSetting(node, name, flow);
    } else if (!/\${\S+}/.test(value)) {
        // ENV_VAR
        result = getSetting(node, value, flow);
    } else {
        // FOO${ENV_VAR}BAR
        return value.replace(/\${([^}]+)}/g, function(match, name) {
            var val = getSetting(node, name, flow);
            return (val === undefined)?"":val;
        });
    }
    return (result === undefined)?"":result;

}
Checks if a String contains any Environment Variable specifiers and returns
it with their values substituted in place.

For example, if the env var `WHO` is set to `Joe`, the string `Hello ${WHO}!`
will return `Hello Joe!`.
@param  {String} value - the string to parse
@param  {Node} node - the node evaluating the property
@return {String} The parsed string
@memberof @node-red/util_util