我遇到过这种情况,我需要在Node
中存储复杂对象,以便以后使用和实例化第三方API的身份验证对象。
对象具有这种粗略结构:
{
_descriptors: { stream: { streamingDetectIntent: [Object] } },
auth:
Auth {
authClientPromise: Promise { [Object] },
authClient:
JWT {
transporter: DefaultTransporter {},
_certificateCache: null,
_certificateExpiry: null,
_clientId: undefined,
_clientSecret: undefined,
_redirectUri: undefined,
_opts: {},
credentials: [Object],
email: '<EMAIL>',
keyFile: undefined,
key: '<RSA KEY>',
scopes: [Object],
subject: undefined,
gToken: [Function: GoogleToken],
projectId: '<ID>',
gtoken: [Object] },
googleAuthClient:
GoogleAuth {
_isGCE: undefined,
jsonContent: [Object],
cachedCredential: [Object],
JWTClient: [Function: JWT],
ComputeClient: [Object],
IAMAuth: [Function: IAMAuth],
Compute: [Object],
JWT: [Function: JWT],
JWTAccess: [Function: JWTAccess],
OAuth2: [Object],
UserRefreshClient: [Function: UserRefreshClient],
_cachedProjectId: '<ID>' },
config:
{ clientConfig: {},
port: 443,
scopes: [Object] },
credentials: null,
environment: {},
projectId: '<ID>' },
_pathTemplates: { sessionPathTemplate: projects/{project=*}/agent/sessions/{session=*} },
_innerApiCalls:
{ detectIntent: [Function: apiCallInner],
streamingDetectIntent: [Function: apiCallInner] } }
正如您所看到的,该对象包含其他必要的对象,但更重要的是,它包含需要保留的函数和 promises 。
我的第一个想法是简单地加密整个字符串化对象,并在需要时解密并解析回JSON
,但这并不保留对象中的Promises
或函数。
是否存在暂时存储此类对象供以后使用的方法,或者是否可以在不同应用程序中来回传输的方法?