首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用VelocityJS解析虚拟磁带库时如何解决“意外令牌$ in JSON”的问题

使用VelocityJS解析虚拟磁带库时如何解决“意外令牌$ in JSON”的问题
EN

Stack Overflow用户
提问于 2019-08-13 01:44:25
回答 1查看 180关注 0票数 0

为了为我的AppSync解析器编写单元测试,我使用VelocityJS包来解析我的sam模板中的虚拟磁带库。但是,VTL模板没有被完全解析。

代码在AWS上运行良好,是单元测试出错了。https://github.com/shepherdwind/velocity.js

代码语言:javascript
复制
#if($util.isNullOrBlank($ctx.result.themePreferences))
    #set($themePreverences = {})
    $util.qr($themePreverences.put("darkMode", "DEFAULT"))
    $util.qr($ctx.result.put("themePreferences", $themePreverences))
#end
$util.toJson($ctx.result)

使用let result = Velocity.parse(template, ctx);时,结果是字符串"$util.toJson($ctx.result)",而不是$ctx.result的JSON值。

即:

代码语言:javascript
复制
{ "themePreferences": { "darkMode": "DEFAULT" } }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-27 06:57:21

我认为解析麻烦的原因是util和ctx/context都是AppSync概念,而不是VTL概念。因为你使用的是第三方库,他们不知道这是什么意思,也不能取代他们。

您可能会发现Amplify的新模拟和测试工具很有帮助:https://aws-amplify.github.io/docs/cli-toolchain/quickstart?sdk=js#mocking-and-testing

如果以上内容不适合您的用例,也有其他第三方库可以很好地涵盖AppSync本地开发,值得一试。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57465843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档