如何将 Cypher 查询导入到我的 Node.js 逻辑中?

问题描述 投票:0回答:2

我不是一个非常有经验的开发人员,但我希望对我的项目进行过于结构化,以便更容易工作。

假设我有一个这样的函数:

const x = async (tx, hobby) => {
  const result = await tx.run(
    "MATCH (a:Person) - [r] -> (b:$hobby) " +
    "RETURN properties(a)",
    { hobby }
  )
  return result
}

我可以将我的密码查询脚本放在单独的文件中并引用它吗?我在 SQL 脚本中看到过类似的模式。

这就是我的想法:

const CYPHER_SCRIPT = require('./folder/myCypherScript.cyp')

const x = async (tx, hobby) => {
  const result = await tx.run( 
    CYPHER_SCRIPT,
    { hobby }
  )
  return result
}

..或者我需要对 .cyp 文件的内容进行字符串化吗? 谢谢

node.js neo4j cypher
2个回答
0
投票

您可以使用 @cybersam/require-cypher 包(我刚刚创建的)。

例如,如果

folder/myCypherScript.cyp
包含以下内容:

MATCH (a:Person)-->(:$hobby)
RETURN PROPERTIES(a)

然后在安装包后(

npm i @cybersam/require-cypher
),此代码将输出该文件的内容:

// Just require the package. You don't usually need to use the returned module directly.
// Handlers for files with extensions .cyp, .cql, and .cypher will be registered.
require('@cybersam/require-cypher');

// Now require() will return the string content of Cypher files
const CYPHER_SCRIPT = require('./folder/myCypherScript.cyp')

console.log(CYPHER_SCRIPT);

0
投票

对于迟到的人,如果您使用类型脚本,您可以将其添加到 globa 类型定义中

//global.d.ts
declare module '*.cypher' {
  const content: string;
  export default content;
}

那么你就可以做

import cypher from './mycypher.cypher'
© www.soinside.com 2019 - 2024. All rights reserved.