如何将变量从客户机传递到服务器,并将其持久化在服务器中用于其他功能

How to pass variable from client to server and persist it in the server for other functions

本文关键字:服务器 持久化 用于 功能 其他 客户机 变量      更新时间:2023-09-26

在我的google appscripts web应用程序中,我在客户端(js)文件中定义了一个变量。我们称这个变量为qy。我在许多服务器函数中需要这个变量,所以目前我这样做:

<script>
google.script.run.serverFunction(qty);
</script>

我的服务器脚本是这样的:

function serverFunction(qty) {
      ... 
      INSERT INTO table (blah) VALUES (qty);
      ...
    }

但是,相反,我想传递数量到服务器一次,设置它作为一个全局变量(?)…这样我就可以直接在我所有的服务器函数中使用它,而不必每次都从客户端传递它。

为什么我需要这个?因为目前,精明的用户可以在控制台中运行google.script.run.serverFunction(qty);并插入随机的东西。如果在server中设置了输入变量,则会有更多的控制。

您需要使用:

PropertiesService.getScriptProperties() 

并将数据放入Properties Service中。但是,一个属性只能保存9k的数据。如果您的数据超过9k,则需要将其拆分。如果它远远超过9k,比如100k,那么将数据放入Properties Service可能无法工作。如果你只需要保存数据少于6小时,你可以使用缓存服务,并在一个属性中存储高达100k的数据。

Apps Script文档-缓存服务