typescript - 无法创建边缘

标签 typescript gremlin aws-cdk aws-appsync aws-neptune

我已经创建了一个 AWS AppSync graphql api,它在被调用时将运行一个 AWS Lambda 函数,该函数将使用查询语言 Gremlin 创建一个顶点和边,但是在成功创建顶点并且 AWS AppSync 给我后我无法创建边此错误 "message": "g.addE(...).from is not a function"

这是我的lambda函数代码,请检查我的代码是否有问题? 告诉我我的错误在哪里?

import { process as gprocess } from 'gremlin';
import Post from './Post'
const gremlin = require('gremlin')
const DriverRemoteConnection = gremlin.driver.DriverRemoteConnection
const Graph = gremlin.structure.Graph
const uri = process.env.WRITER
const { t, P, } = gprocess;
const __ = gprocess.statics;

async function createPost(post: Post) {

    let dc = new DriverRemoteConnection(`wss://${uri}/gremlin`, {})

    const graph = new Graph()
    const g = graph.traversal().withRemote(dc)  

    let vertex = await g.addV('posts').property('title',post.title).property('content', post.content).property('id', post.id).next()

    let edge = await g.addE('post_to_post').from(g.V().hasLabel('posts').next()).to(g.V().hasLabel('posts').next()).next()

    dc.close()

    return post;
}

export default createPost

最佳答案

在 Javascript 中,from 是一个保留字。当 Gremlin 有此类冲突时,Javascript 中步骤命名的约定是在步骤的后缀后添加下划线。因此,您可以将其称为 from_()。您可以在 from() here 的文档中看到这一点并注意在 Javascript 中对于表示为 here 的其他步骤还有其他类似的差异.

关于typescript - 无法创建边缘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69355469/

相关文章:

java - 从 EC2 窗口访问 Amazon Neptune

gremlin - Gremlin 中的远程遍历可以使用策略吗?

amazon-rds - 如何在没有循环依赖的情况下使用 CDK 将安全组添加到现有 RDS

amazon-web-services - 使用 AWS CDK,如何在代码管道中设置源代码的 oathToken,从 GitHub 提取源代码,而不使用 Secret Manager 服务?

typescript - 如何使用 Swagger Codegen TypeScript Fetch Client

node.js - typescript 中数据 hydration/dehydration 的类

neo4j - Gremlin sideEffect 变量赋值不起作用

npm - 运行 npm install 后如何修复 aws-cdk 的 'command not found'

typescript - 当其类型定义未声明模块时如何在 TypeScript 中导入库?

angular - 为什么我不能使用 Angular NgModel 限制输入的值长度?