Невозможно создать края
Я создал AWS AppSync graphql api, который при вызове будет запускать функцию AWS Lambda, и эта функция создаст вершину и ребро с использованием языка запросов Gremlin, но я не могу создать ребро после успешного создания вершины, и AWS AppSync выдает мне эту ошибку "message":"g.addE(...).from не является функцией "
Это мой код лямбда-функции, проверьте, есть ли в моем коде какие-либо проблемы? скажи мне, в чем моя ошибка?
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
1 ответ
В Javascript
from
зарезервированное слово. Когда у Gremlin возникают такие конфликты, соглашение об именовании шагов в Javascript заключается в добавлении символа подчеркивания к суффиксу шага. Поэтому вы бы назвали его
from_()
. Вы можете увидеть это в документации для
from()
здесь и обратите внимание, что в Javascript есть и другие аналогичные отличия для других шагов, обозначенных здесь .