The Storage API provides a pluggable way to configure where the Node-RED runtime stores data.
The information stored by the API includes:
By default, Node-RED uses a local file-system implementation of this API.
The API functions are documented here.
The storageModule
property in settings.js can be used to identify a custom module
to use:
storageModule: require("my-node-red-storage-plugin")
The API makes extensive use of JavaScript promises.
A promise represents the eventual result of an asynchronous operation. It acts as a placeholder until the result is available.
Node-RED uses the When.js library. The following
example shows it in use. For a more complete example, the default file-system
implementation is located in red/runtime/storage/localfilesystem.js
.
function getFlows() {
// create and return a promise
return when.promise(function(resolve,reject) {
// resolve - a function to be called with the successful result
// reject - a function to be called if an error occurs
// do some asynchronous work, with a callback on completion
doAsyncWork(function(err,result) {
if (err) {
reject(err);
} else {
resolve(result);
}
});
});
}
getFlows()
.then(function(result) {
// Called when getFlows completes successfully
})
.otherwise(function(err) {
// Called when getFlows hits an error
});