我当前使用fs在node中加载一个文件。readFileSync:
const filename = 'test.html'; const html_code = fs.readFileSync(/var/www/vhosts/example.com/httpdocs/html/${filename}
,'utf8');
在test.html中,我有这个div:
<div id="g-ai0-1" class="g-Text g-aiAbs g-aiPointText" style="top:59.6648%;margin-top:-14.2px;left:49.9587%;margin-left:-46px;width:92px;">
<p class="g-pstyle0">{{ Text }}</p>
</div>
我可以在html中搜索{{ Text }}
字符串并将其替换为其他字符串吗?我试过这个:
html_code.replace('{{ Text }}', 'new string');
这不起作用,我也试过:
const html_code = fs.readFile(`/var/www/vhosts/example.com/httpdocs/html/${filename}`, 'utf8', (err, data) => {
if(err) {
res.send(`this is the error: ${err}`);
console.error(err)
return
}
data.replace('{{ Text }}', 'new string');
return data;
});
但也不管用。我如何才能做到这一点或没有一个引擎一样的车把?
1条答案
按热度按时间r3i60tvu1#
fs.readFileSync()
不接受第三个回调参数,它是同步的,并直接返回到您分配的html_code
变量。(接受3个参数的是fs.readFile()
,但它是异步的。)另外,JS中的
String.prototype.replace()
只替换第一个示例,试试regex:/{{ Test }}/g
,其中g
是全局替换的标志。该函数也不会就地替换字符串,而是返回一个新的字符串,并替换了子字符串。下面的代码应该可以正常工作: