我不是一个非常有经验的开发人员,但我希望对我的项目进行过于结构化,以便更容易工作。
假设我有一个这样的函数:
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 文件的内容进行字符串化吗? 谢谢
您可以使用 @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);
对于迟到的人,如果您使用类型脚本,您可以将其添加到 globa 类型定义中
//global.d.ts
declare module '*.cypher' {
const content: string;
export default content;
}
那么你就可以做
import cypher from './mycypher.cypher'