NodeStorage provides an interface to save all classes that extends StorageNode. Any storage backend that is implemented by @tekbox/unified-storage can be used. #### Usage
npm install @tekbox/node-storageAvailable methods:
``javascript
export interface INodeHandler {
saveNode
getNode
deleteNode(node: INode, dbName?: string): ThenPromise
getAllNodes
dumpAll(): ThenPromise
}
`
Usage:
`javascript
export class TestNode extends StorageNode {
public name: string;
constructor(id?: string, name?: string) {
super();
this.id = id != null ? id : "";
this.name = name != null ? name : "";
}
}
export class TestHandler extends AbstractStorageHandler {
getStorageAdapter(storageName: string): ThenPromise
return new ThenPromise
if (!this.storageAdapters.has(storageName)) {
const us = new UnifiedStorage("test", new FilesystemStorageAdapter("./test", "testdata"));
us.name = storageName;
this.storageAdapters.set(storageName, us);
}
const adapter = this.storageAdapters.get(storageName);
resolve(adapter);
}));
}
}
NodeHandlerStatic.Setup(new NodeHandler(new TestHandler()));
`
`javascript
const nodeStorage = NodeHandlerStatic.GetInstance();
nodeStorage.getNode(new TestNode(), "node-id").then((node: TestNode) => {
console.log(node);
}).catch((err) => {
console.log(err);
});
``