-1

当使用带有session.run()的LOAD CSV函数在 Neo4J 中执行密码语句时,它不会返回任何内容。已尝试删除LOAD CSV,它在创建节点时效果很好。

这是代码:

import { neo4jgraphql } from "neo4j-graphql-js";
import fs from "fs";
import path from "path";
const {createWriteStream} = require("fs");
const {GraphQLUpload} = require("apollo-server");
import {session} from "./index.js"

/*
 * Check for GRAPHQL_SCHEMA environment variable to specify schema file
 * fallback to schema.graphql if GRAPHQL_SCHEMA environment variable is not set
 */
const files = [];
export const typeDefs = fs
  .readFileSync(
    process.env.GRAPHQL_SCHEMA || path.join(__dirname, "schema.graphql")
  )
  .toString("utf-8");

export const resolvers = {
//  Upload: GraphQLUpload,
  Query: {
    files: () => files
  },
  Mutation: {
    uploadFile: async (_, {file}) => {
      const {createReadStream, filename } = await file;

      await new Promise(res =>
        createReadStream()
          .pipe(createWriteStream(path.join(__dirname, "./uploads", filename)))
          .on("close", res)
        );
        session.run("LOAD CSV WITH HEADERS FROM 'file:///Connections.csv' AS csvLine CREATE(n)"); // This does not work with the LOAD CSV (Works with only CREATE(n))
        return true;
    }
  }
};

4

1 回答 1

0

该 LOAD CSV 命令将每行调用CREATE (n)一次,这将创建一个没有标签或属性的节点。尝试将其更改为类似CREATE (n:CsvNode) SET n.prop_1 = csvLine.header1header1CSV 中的标题之一)并查看是否创建了标记为 :CsvNode 的节点。

于 2020-05-12T17:56:33.023 回答