ServerStorage: Difference between revisions

From NSB App Studio
Jump to navigation Jump to search
No edit summary
 
(12 intermediate revisions by the same user not shown)
Line 7: Line 7:
== Description ==
== Description ==


ServerStorage allows you to save data in ''key'', ''value'' pairs on the server so it is available next time you run the program. An entry can be created by assigning to serverStorage.setItem(''variableName'', ''value''), where ''variableName'' is chosen by you. Data is retrieved a similar way.  
ServerStorage allows you to save data in ''key'', ''value'' pairs on the server so it is available next time you run the program. An entry can be created by assigning to serverStorage.setItem(''key'', ''value''), where ''key'' is chosen by you. Data is retrieved a similar way.  The information in serverStorage is only available to the app itself.


''value'' can be a string, number, array or object. There is no size limit on ''value'', other than it be reasonable.
''value'' can be a string, number, array or object. There is no size limit on ''value'', other than it be reasonable.


This feature is only available if your app is hosted on Volt. If your app does not have a live internet connection, the request will time out and an error message will be passed to ''callback''.
This feature is only available if your app is hosted on VoltServer.  
 
If your app does not have a live internet connection, the request will time out and an error message will be passed to ''callback''.


Since the calls access information on a server, they are asynchronous (so your app does not look up while the call is being processed). When the call is complete, the function named in ''callback'' is called in your app. It passes two parameters: (''error'', ''data''). If the call is successful, ''error'' is empty and your results are in ''data''. If the call is unsuccessful, ''error'' is not empty and the error message is in ''data''.message.
Since the calls access information on a server, they are asynchronous (so your app does not look up while the call is being processed). When the call is complete, the function named in ''callback'' is called in your app. It passes two parameters: (''error'', ''data''). If the call is successful, ''error'' is empty and your results are in ''data''. If the call is unsuccessful, ''error'' is not empty and the error message is in ''data''.message.


serverStorage is an alias for $volt.user.storage.
serverStorage is an alias for $volt.user.storage in the [https://docs.voltcloud.io/api/ VoltServer API].


== Properties and Methods ==
== Properties and Methods ==
Line 22: Line 24:
|-
|-
| clear(''callback'') || Clear all entries for the app.
| clear(''callback'') || Clear all entries for the app.
|-
| removeItem(''key'', ''callback'') || Deletes item ''key''.
|-
|-
| getItem(''key'', ''callback'') || Get the item which is saved under ''key''. String.
| getItem(''key'', ''callback'') || Get the item which is saved under ''key''. String.
|-
|-
| getAllItems(''callback'') || Gets all the items for the app, as an array. Each element is a key,value pair.
| getAllItems(''callback'') || Gets all the items for the app, as an array. Each element is a key,value pair.
|-
| removeItem(''key'', ''callback'') || Deletes item ''key''.
|-
|-
| setItem(''key'', ''value'', ''callback'') || Sets item ''key'' to ''value''. Creates item if it does not exist.
| setItem(''key'', ''value'', ''callback'') || Sets item ''key'' to ''value''. Creates item if it does not exist.
|}
|}


== Example - BASIC ==
== Example ==
 
<tabber>
JavaScript=
<syntaxhighlight lang="JavaScript">
butClear.onclick = function() {
    serverStorage.clear(done);
};
 
butGetAllItems.onclick = function() {
    serverStorage.getAllItems(getAllItemsCallback);
};
 
butGetItem.onclick = function() {
    serverStorage.getItem("SimpleString", getItemCallback);
};
 
butRemoveItem.onclick = function() {
    serverStorage.removeItem("SimpleString", done);
};
 
butSetItem.onclick = function() {
    serverStorage.setItem("SimpleString", "ABCD", done);
    serverStorage.setItem("Number", 123, done);
    serverStorage.setItem("Array", [1, 2, 3, 4], done);
    serverStorage.setItem("Object", {
        firstName: "Eric",
        lastName: "Cartman"
    }, done);
};


<pre>
function done(error, data) {
Sub Main()
    if (error) {
  NameSpace.text = serverStorage.namespace
        if (data == undefined) {
End Sub
            data = {
                message: "Network Error"
            };
        }
        NSB.MsgBox(data.message);
    } else {
        console.log("success");
    }
}


Function Button1_onclick()
function getAllItemsCallback(error, data) {
  t=SysInfo(10)
    if (error) {
  For i = 1 To 10
        if (data == undefined) {
     serverStorage.setItem("item" & i, i)
            data = {
  Next
                message: "Network Error"
  MsgBox "Write 10 items into serverStorage(secs): " & (SysInfo(10)-t)/1000
            };
        }
        NSB.MsgBox(data.message);
     } else {
        NSB.Print((false) + "<br>");
        for (key in data) {
            console.log(key, data[key]);
        }
    }
}
 
function getItemCallback(error, data) {
    if (error) {
        if (data == undefined) {
            data = {
                message: "Network Error"
            };
        }
        NSB.MsgBox(data.message);
    } else {
        NSB.MsgBox(data);
    }
}</syntaxhighlight>
|-|
  BASIC=
<syntaxhighlight lang="vb.net">
Function butClear_onclick()
  serverStorage.clear(done)
End Function
 
Function butGetAllItems_onclick()
  serverStorage.getAllItems(getAllItemsCallback)
End Function
End Function


Function Button2_onclick()
Function butGetItem_onclick()
   NSB.Print(False)
   serverStorage.getItem("SimpleString", getItemCallback)
  For i=0 To serverStorage.length-1
    key = serverStorage.key(i)
    Print key, serverStorage.getItem(key)
  Next
End Function
End Function


Function Button3_onclick()
Function butRemoveItem_onclick()
   serverStorage.clear()
   serverStorage.removeItem("SimpleString", done)
End Function
End Function
</pre>


== Example - JavaScript ==
Function butSetItem_onclick()
<pre>
  serverStorage.setItem("SimpleString", "ABCD", done)
function Main() {
  serverStorage.setItem("Number", 123, done)
   NameSpace.text = serverStorage.namespace;
   serverStorage.setItem("Array", [1, 2, 3, 4], done)
}
  serverStorage.setItem("Object", {firstName: "Eric", lastName: "Cartman"}, done)
End Function


Button1.onclick = function() {
Function done(error, data)
   t=SysInfo(10);
   If error Then
  for  (i = 1; i  <= 10; i ++) {
    If data = undefined Then data = {message: "Network Error"}
     serverStorage.setItem("item"  +  i, i);
     MsgBox data.message
   }
   Else
  alert("Write 10 items into serverStorage(secs): "  +   (SysInfo(10)-t)/1000);
    console.log("success")
}
   End If
End Function


Button2.onclick = function() {
Function getAllItemsCallback(error, data)  
   NSB.Print(False);
   If error Then
  for  (i=0; i <= serverStorage.length-1; i++) {
    If data = undefined Then data = {message: "Network Error"}
     key = serverStorage.key(i);
     MsgBox data.message
     NSB.Print((key+ " " + serverStorage.getItem(key)) + "<br>");
  Else
  }
     Print False
}
    For Each key in data
      console.log(key, data[key])
      k = [key, key][0]
      Print k & ": " & data[key].toString()
    Next
    End If
End Function


Button3.onclick = function() {
Function getItemCallback(error, data)  
   serverStorage.clear();
  If error Then
}
    If data = undefined Then data = {message: "Network Error"}
</pre>
    MsgBox data.message
   Else
    MsgBox data
  End If
End Function
</syntaxhighlight>
</tabber>


== Output ==
== Output ==
Line 93: Line 172:
== Related Items ==
== Related Items ==


[[localstorage|LocalStorage]], [[sessionstorage|SessionStorage]], [[sql|SQL]]
[[AppStorage|AppStorage]], [[localstorage|LocalStorage]], [[sessionstorage|SessionStorage]], [[sql|SQL]]


[[Category:Language Reference]]
[[Category:Language Reference]]


[[Category:Miscellaneous]]
[[Category:Miscellaneous]]

Latest revision as of 15:28, 25 February 2021

serverStorage.clear(callback)
serverStorage.getItem(key, callback)
serverStorage.getAllItems(key, callback)
serverStorage.removeItem(key, callback)
serverStorage.setItem(key, value, callback)

Description

ServerStorage allows you to save data in key, value pairs on the server so it is available next time you run the program. An entry can be created by assigning to serverStorage.setItem(key, value), where key is chosen by you. Data is retrieved a similar way. The information in serverStorage is only available to the app itself.

value can be a string, number, array or object. There is no size limit on value, other than it be reasonable.

This feature is only available if your app is hosted on VoltServer.

If your app does not have a live internet connection, the request will time out and an error message will be passed to callback.

Since the calls access information on a server, they are asynchronous (so your app does not look up while the call is being processed). When the call is complete, the function named in callback is called in your app. It passes two parameters: (error, data). If the call is successful, error is empty and your results are in data. If the call is unsuccessful, error is not empty and the error message is in data.message.

serverStorage is an alias for $volt.user.storage in the VoltServer API.

Properties and Methods

clear(callback) Clear all entries for the app.
getItem(key, callback) Get the item which is saved under key. String.
getAllItems(callback) Gets all the items for the app, as an array. Each element is a key,value pair.
removeItem(key, callback) Deletes item key.
setItem(key, value, callback) Sets item key to value. Creates item if it does not exist.

Example

butClear.onclick = function() {
    serverStorage.clear(done);
};

butGetAllItems.onclick = function() {
    serverStorage.getAllItems(getAllItemsCallback);
};

butGetItem.onclick = function() {
    serverStorage.getItem("SimpleString", getItemCallback);
};

butRemoveItem.onclick = function() {
    serverStorage.removeItem("SimpleString", done);
};

butSetItem.onclick = function() {
    serverStorage.setItem("SimpleString", "ABCD", done);
    serverStorage.setItem("Number", 123, done);
    serverStorage.setItem("Array", [1, 2, 3, 4], done);
    serverStorage.setItem("Object", {
        firstName: "Eric",
        lastName: "Cartman"
    }, done);
};

function done(error, data) {
    if (error) {
        if (data == undefined) {
            data = {
                message: "Network Error"
            };
        }
        NSB.MsgBox(data.message);
    } else {
        console.log("success");
    }
}

function getAllItemsCallback(error, data) {
    if (error) {
        if (data == undefined) {
            data = {
                message: "Network Error"
            };
        }
        NSB.MsgBox(data.message);
    } else {
        NSB.Print((false) + "<br>");
        for (key in data) {
            console.log(key, data[key]);
        }
    }
}

function getItemCallback(error, data) {
    if (error) {
        if (data == undefined) {
            data = {
                message: "Network Error"
            };
        }
        NSB.MsgBox(data.message);
    } else {
        NSB.MsgBox(data);
    }
}

Function butClear_onclick()
  serverStorage.clear(done)
End Function

Function butGetAllItems_onclick()
  serverStorage.getAllItems(getAllItemsCallback)
End Function

Function butGetItem_onclick()
  serverStorage.getItem("SimpleString", getItemCallback)
End Function

Function butRemoveItem_onclick()
  serverStorage.removeItem("SimpleString", done)
End Function

Function butSetItem_onclick()
  serverStorage.setItem("SimpleString", "ABCD", done)
  serverStorage.setItem("Number", 123, done)
  serverStorage.setItem("Array", [1, 2, 3, 4], done)
  serverStorage.setItem("Object", {firstName: "Eric", lastName: "Cartman"}, done)
End Function

Function done(error, data)
  If error Then
    If data = undefined Then data = {message: "Network Error"}
    MsgBox data.message
  Else
    console.log("success")
  End If
End Function

Function getAllItemsCallback(error, data) 
  If error Then
    If data = undefined Then data = {message: "Network Error"}
    MsgBox data.message
  Else
    Print False
    For Each key in data
      console.log(key, data[key])
      k = [key, key][0]
      Print k & ": " & data[key].toString()
    Next
    End If
End Function

Function getItemCallback(error, data) 
  If error Then
    If data = undefined Then data = {message: "Network Error"}
    MsgBox data.message
  Else
    MsgBox data
  End If
End Function

Output

(see serverStorage sample)

Related Items

AppStorage, LocalStorage, SessionStorage, SQL