以下是nodejs脚本的一部分。
const util = require('util');
const exec = util.promisify(require('child_process').exec);
fs.writeFile( filepath, dom.window.document.querySelectorAll("note")[i].textContent, function(err) {
if(err) { return console.log(err); }
});
const text_content = dom.window.document.querySelectorAll("note")[i].textContent ;
async function exec_python3() {
const { stdout, stderr } = await exec(`bash -c 'python3 ${filepath}'`);
text_content = stdout ;
}
exec_python3() ;
dom.window.document.querySelectorAll("note")[i].textContent
是一个jsdom对象。
我要做的是将dom.window.document.querySelectorAll("note")[i].textContent
中的内容替换为已执行的Python3的标准输出。
例如,当前dom.window.document.querySelectorAll("note")[i].textContent
的值为print("foo")
,并且在foo
之后的值为exec_python3() ;
。
但是上述脚本发生错误Assignment to constant variable.
。我不知道该怎么办,知道吗?谢谢。
答案 0 :(得分:0)
如果您想更改dom.window.document.querySelectorAll("note")[i].textContent
,则需要更改那个。
将其值复制到变量,然后更改该变量的值不会触及dom.window.document.querySelectorAll("note")[i].textContent
。
所以:
dom.window.document.querySelectorAll("note")[i].textContent = stdout;
对于您的错误,在修复它并不能解决问题时,使用const
的 entire 要点是您只设置了一次,然后就无法更改。如果您想更改变量,请使用let
。