lib/zookeeper.js
function createPersistentPath(client, path, data, callback) {
  debug('createPersistentPath: "%s" "%s"', path, data);

  data = ensureBuffer(data);

  client.create(path, data, function(err) {
    if (err) {
      if (err.code !== NO_NODE)
        return callback(err);

      createParentPath(client, path, function(err) {
        if (err) return callback(err);

        client.create(path, data, callback);
      });
    } else
      callback(null, path);
  })
}
function createPersistentPath(client, path, data, callback) {
  debug('createPersistentPath: "%s" "%s"', path, data);

  data = ensureBuffer(data);

  client.create(path, data, function(err) {
    if (err) {
      if (err.code !== NO_NODE)
        return callback(err);

      createParentPath(client, path, function(err) {
        if (err) return callback(err);

        client.create(path, data, callback);
      });
    } else
      callback(null, path);
  })
}
function createPersistentPath ( client , path , data , callback ) { debug ( 'createPersistentPath: "%s" "%s"' , path , data ) ; data = ensureBuffer ( data ) ; client . create ( path , data , function ( err ) { if ( err ) { if ( err . code !== NO_NODE ) return callback ( err ) ; createParentPath ( client , path , function ( err ) { if ( err ) return callback ( err ) ; client . create ( path , data , callback ) ; } ) ; } else callback ( null , path ) ; } ) }
Create an persistent node with the given path and data. Create parents if necessary.

@param {ZkClient} client
@param {String} path
@param {String|Buffer} data
@param {Function} callback
Create an persistent node with the given path and data . Create parents if necessary .