Kinda согласен с утверждением @ Plixxer, если это простая операция, такая как замена строки, просто придерживайтесь JS на узле, но независимо от того, я думаю, что ваша проблема в
app.get('/render.html', (req, res) =>{
const rend = fs.readFileSync('./render.html');
res.statusCode = 200;
res.setHeader = ('Content-Type', 'text/html');
res.write(rend);
res.end();
});
конкретно здесь const rend = fs.readFileSync('./render.html');
если этот файл существует ДО того, как вы замените материал своим bash-скриптом, узел просто получит его из файловой системы и передаст его клиенту, он не знает, что что-то происходит в фоновом режиме)это означает, что вы должны будете выполнить замену в блоке app.get()
:
app.get('/render.html', (req, res) =>{
let rend = fs.readFileSync('./render.html');
rend = rend.replace('<regex or whatever you are replacing in bash>', '<replacment, can be a function as well!>');
// or of course execute your bash replacement script here!
// exec('bash replaceString.sh', rend,
// function(error, stdout, stderr) {
// console.log('stdout:', stdout);
// console.log('stderr:', stderr);
// if ( error !== null ) {
// console.log('exec error:', error);
// }
// }
// );
res.statusCode = 200;
res.setHeader = ('Content-Type', 'text/html');
res.write(rend);
res.end();
});