我正在尝试在浏览器中使用gremlin-javascript客户端。
我已经从Titan Graph Db的github下载并安装了Titan-Hadoop堆栈。我已经设置了Gremlin服务器来使用WebSocket Channelizer。 Gremlins主机和端口分别是默认的“localhost”和“8182”,我可以将Gremlin-Console连接到它。我用“GraphOfTheGods”数据填充了服务器,我可以使用gremlin-console查询数据。通过将gremlin-servers channelizer切换到http变体,我可以通过url在浏览器中查询服务器;例如。本地主机:8182小鬼= 100-1。我的偏好是使用WebSockets,因此此配置已重置。
我希望能够从我的Web应用程序中查询数据库。我使用完整模板设置了Vue.js应用程序。我通过npm安装了gremlin-javascript,并在按钮单击事件中运行以下代码:
import { createClient, bindForClient } from 'Gremlin'
export default class titanService {
async query (name, callback) {
const getByName = (name) => ({
gremlin: 'g.V().has("name", name)',
bindings: { name }
})
const client = createClient()
const queries = bindForClient(client, { getByName })
const users = await queries.getByName('saturn')
callback(users)
}
}
这会触发一个GET请求,该请求随后会崩溃成400错误,显而易见的响应是“不是WebSocket握手请求:缺少升级”。
对localhost:8182 / gremlin的GET请求是错误的。错误的协议。错误的网址。没有负载。我也收到了CORS错误。
Fetch API无法加载127.0.0.1:8182/gremlin。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此不允许原点'localhost:8080'访问。响应具有HTTP状态代码400.如果不透明响应满足您的需要,请将请求的模式设置为“no-cors”以获取禁用CORS的资源。
有没有其他人可能遇到过这个问题,或者使用Gremlin-Javascript客户端连接到Gremlin可以帮助我的任何经验?
我想讨论一下。可以这样做吗?有没有首选方式?