Object Creation
To create a registry object, first load the brightsign/registry
module using the require()
method. Then create an instance of the registry class.
Code Block | ||
---|---|---|
| ||
var registryClass = require("@brightsign/registry"); var registry = new registryClass(); |
Registry
Use this interface for registry read/write operations.
All section and key names are canonicalized to lowercase.
read()
Code Block | ||
---|---|---|
| ||
Promise<String> read(String sectionName, String key) |
Returns the string registry value associated with the specified key. You must also specify the registry section where the key is stored.
Code Block | ||
---|---|---|
| ||
Promise<RegistrySection> read(String sectionName) |
Returns the specified registry section in the following format: RegistrySection.{entry_key}
.
Code Block | ||
---|---|---|
| ||
Promise<RegistryObject> read() |
Returns all registry sections in the following format: RegistryObject.{section_name}.{entry_key}
.
write()
Code Block | ||
---|---|---|
| ||
Promise<void> write(String sectionName, String key, String value) |
Writes a single registry entry to the specified registry section.
Code Block | ||
---|---|---|
| ||
Promise<void> write(String sectionName, RegistrySection section) |
Writes the specified registry section to the registry. If the registry section does not exist, it will be created; otherwise, the entries will be added or updated in the existing registry section (preexisting registry entries that are not specified in the write operation will be unaffected).
Code Block | ||
---|---|---|
| ||
Promise<void> write(RegistryObject) |
Writes the specified registry sections/entries to the registry. Registry sections and entries that do not exist will be created, and existing entries will be updated (preexisting registry sections/entries that are not specified in the write operation will be unaffected).
The single-entry write()
method will not perform well when used to write multiple entries successively. For optimal performance, use the single-section write()
method to write multiple entries to a single section and the full-registry method to write to multiple sections.
Sixty seconds at most after a write to the registry, or before an orderly reboot, the newly written data will be automatically be written out to persistent storage. If for some reason, a set of registry changes must be written immediately, then the flush()
method should be called after the last one.
Warning |
---|
Important While it is possible to read the entire registry, modfiy the return value, and write it back into the registry, this is not a recommended practice: It may cause race conditions among different parts of the system that are attempting to write to the registry at the same time. |
flush()
Code Block | ||
---|---|---|
| ||
Promise<void> flush() |
Flushes the contents of the registry immediately to persistent storage.
Tip |
---|
Tip To delete a registry entry or section, assign it a |
Example
Code Block | ||
---|---|---|
| ||
var registryClass = require("@brightsign/registry"); var registry = new registryClass(); //Reads the entire registry to the log. registry.read().then(function(registry) { console.log(JSON.stringify(registry)); }); //Reads the contents of the "networking" registry to the log. registry.read("networking").then( function(registry){console.log(JSON.stringify(registry));}); //Writes multiple entries to multiple sections. registry.write({networking:{ssh:"22", http_server:"8080"}, autorun:{devicesetupcomplete:"1"}} ).then( function(){console.log("Write Successful");}); //Updates a single section. registry.write("networking", {ssh:"22", http_server:"8080"}).then( function(){console.log("Write Successful");}); //Deletes a registry section and entry, and creates a new section. registry.write({networking:{ssh:"22", http_server:null}, autorun:null, section1:{test:"val"}} ).then( function(){console.log("Write Successful");}); |