如何在nodejs中添加多行无痛代码
How to add multiline painless code in nodejs
所以在我的 js 代码中有这一行:
var _script = {
_script: {
script: {
lang: 'painless',
source: `
"""
if(1>2){
params._source.id;
}
else{
params._source.id;
}
"""
`
},
type: 'string',
order: params._source.id
}
}
这会失败。我在日志中看到这条错误消息:
,\"reason\":\"unexpected token ['\\"\\n if(1>2){\\n params._source.id;\\n }\\n else{\\n params._source.id;\\n }\\n \\"'] was expecting one of [{<EOF>, ';'}].\"}}}]},
我先试过没有波浪字符。然后它也失败了。
然后我尝试在开头使用波浪号,例如:
var _script = `{
问题是上面的代码中没有显示将发送到 elastic 的最终 json。所以“_script”只是所有json的一小部分。
我想知道我是否在整个 json 的开头和结尾添加波浪号。也许它可以工作?我需要弄清楚它在哪里。
但只是理论上:你认为问题出在那里吗?在所有 json 周围加上波浪号?或者是别的什么?
三元组 "
无效 JSON,它仅适用于 Elastic 堆栈内部(即从 Kibana Dev Tools 到 ES)。
从 Node.js 开始,我通常采用的方法是将每一行添加到一个数组中,然后加入该数组,如下所示:
const code = [];
code.push("if(1>2){");
code.push("params._source.id;");
code.push("} else {");
code.push("params._source.id;");
code.push("}");
source = code.join(" ");
我承认,它不是很清晰。另一种方法是使用 stored scripts 这样您就可以通过 Node.js.
中的 ID 简单地引用您的脚本
所以在我的 js 代码中有这一行:
var _script = {
_script: {
script: {
lang: 'painless',
source: `
"""
if(1>2){
params._source.id;
}
else{
params._source.id;
}
"""
`
},
type: 'string',
order: params._source.id
}
}
这会失败。我在日志中看到这条错误消息:
,\"reason\":\"unexpected token ['\\"\\n if(1>2){\\n params._source.id;\\n }\\n else{\\n params._source.id;\\n }\\n \\"'] was expecting one of [{<EOF>, ';'}].\"}}}]},
我先试过没有波浪字符。然后它也失败了。 然后我尝试在开头使用波浪号,例如:
var _script = `{
问题是上面的代码中没有显示将发送到 elastic 的最终 json。所以“_script”只是所有json的一小部分。 我想知道我是否在整个 json 的开头和结尾添加波浪号。也许它可以工作?我需要弄清楚它在哪里。 但只是理论上:你认为问题出在那里吗?在所有 json 周围加上波浪号?或者是别的什么?
三元组 "
无效 JSON,它仅适用于 Elastic 堆栈内部(即从 Kibana Dev Tools 到 ES)。
从 Node.js 开始,我通常采用的方法是将每一行添加到一个数组中,然后加入该数组,如下所示:
const code = [];
code.push("if(1>2){");
code.push("params._source.id;");
code.push("} else {");
code.push("params._source.id;");
code.push("}");
source = code.join(" ");
我承认,它不是很清晰。另一种方法是使用 stored scripts 这样您就可以通过 Node.js.
中的 ID 简单地引用您的脚本