Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gremlin查询中Node.js中的循环JSON问题_Node.js_Gremlin_Tinkerpop - Fatal编程技术网

Gremlin查询中Node.js中的循环JSON问题

Gremlin查询中Node.js中的循环JSON问题,node.js,gremlin,tinkerpop,Node.js,Gremlin,Tinkerpop,JanusGraph正在Docker容器中的localhost:8182上运行 我正在链接到Janusgraph Docker容器的Docker容器中运行gremlin控制台 我可以对导入的air-routes.graphml数据运行成功的遍历 我正在构建一个Node.js/Express应用程序,如下所示: const express = require('express'); const app = express(); const router = express.Router(); c

JanusGraph正在Docker容器中的localhost:8182上运行

我正在链接到Janusgraph Docker容器的Docker容器中运行gremlin控制台

我可以对导入的air-routes.graphml数据运行成功的遍历

我正在构建一个Node.js/Express应用程序,如下所示:

const express = require('express');
const app = express();
const router = express.Router();

const gremlin = require('gremlin');
const traversal = gremlin.process.AnonymousTraversalSource.traversal;
const __ = gremlin.process.statics;
const DriverRemoteConnection = gremlin.driver.DriverRemoteConnection;
const column = gremlin.process.column
const direction = gremlin.process.direction
const p = gremlin.process.P
const textp = gremlin.process.TextP
const pick = gremlin.process.pick
const pop = gremlin.process.pop
const order = gremlin.process.order
const scope = gremlin.process.scope
const t = gremlin.process.t

const g = traversal().withRemote(new DriverRemoteConnection('ws://localhost:8182/gremlin'));

router.get('/home', (req,res) => {
  res.send('<h1>Hello World,</h1><p>This is home router</p>');
});

router.get('/query', (req,res) => {
    // g.V().has('airport','code','DFW').values().toList()
    // .then(DFWdetail => console.log(DFWdetail));
    res.send(gremlinQuery());
    //res.send("<h1>Airport query</h1><p>g.V().has('airport','code','DFW').values()</p>");
  });

router.get('/profile', (req,res) => {
  res.send('<h1>Hello World,</h1><p>This is profile router</p>');
});

router.get('/login', (req,res) => {
  res.send('<h1>Hello World,</h1><p>This is login router</p>');
});

router.get('/logout', (req,res) => {
  res.send('<h1>Hello World,</h1><p>This is logout router</p>');
});

app.use('/', router);

app.listen(process.env.port || 3000);

console.log('Web Server is listening at port '+ (process.env.port || 3000));

function  gremlinQuery() {
    const info = g.V().has('airport', 'code', 'DFW').values();
    console.log(info);
    return(info);
}
VSCode声称它是多余的,并将其删除

我很困惑。如何构建一个basic Node.js/Express traversal,返回航线图数据的结果?

我认为您需要:

基本上,像
g.V()这样的行具有('airport'、'code'、'DFW')。values()
返回一个
遍历
对象,该对象本身不做任何事情,因为它是的一种形式(或者可能更明确地具有Java的行为)。您必须提供某种类型的数据才能获得结果(在本例中,我使用了
toList()


Web Server is listening at port 3000
GraphTraversal {
  graph: Graph {},
  traversalStrategies: TraversalStrategies { strategies: [ [RemoteStrategy] ] },
  bytecode: Bytecode {
    sourceInstructions: [],
    stepInstructions: [ [Array], [Array], [Array] ]
  },
  traversers: null,
  sideEffects: null,
  _traversalStrategiesPromise: null,
  _traversersIteratorIndex: 0
}
TypeError: Converting circular structure to JSON
    --> starting at object with constructor 'GraphSON3Reader'
    |     property '_deserializers' -> object with constructor 'Object'
    |     property 'g:Traverser' -> object with constructor 'TraverserSerializer'
    --- property 'reader' closes the circle
    at JSON.stringify (<anonymous>)
    at stringify (/home/greg/Development/airlines/node_modules/express/lib/response.js:1123:12)
    at ServerResponse.json (/home/greg/Development/airlines/node_modules/express/lib/response.js:260:14)
    at ServerResponse.send (/home/greg/Development/airlines/node_modules/express/lib/response.js:158:21)
    at /home/greg/Development/airlines/myapp.js:28:9
    at Layer.handle [as handle_request] (/home/greg/Development/airlines/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/greg/Development/airlines/node_modules/express/lib/router/route.js:137:13)
    at Route.dispatch (/home/greg/Development/airlines/node_modules/express/lib/router/route.js:112:3)
    at Layer.handle [as handle_request] (/home/greg/Development/airlines/node_modules/express/lib/router/layer.js:95:5)
    at /home/greg/Development/airlines/node_modules/express/lib/router/index.js:281:22
function  gremlinQuery() {
    const info = await g.V().has('airport', 'code', 'DFW').values();
    console.log(info);
    return(info)
function  gremlinQuery() {
    const info = await g.V().has('airport', 'code', 'DFW').values().toList();
    console.log(info);
    return(info)