JavaScript中如何使用标识符socket._streamKey替换ops数组内的output文件名
实现代码(可直接复用)
你需要修改的是数组ops的最后一个元素,对应JS中的取值为ops[ops.length - 1],提供两种可直接用的写法,推荐优先用第一种:
写法1(低出错率,适配你的固定路径场景)
因为你代码里的输出目录是固定写死的,直接拼接动态文件名即可,不需要做复杂的字符串解析:
ops[ops.length - 1] = `/var/www/html/streams/${socket._streamKey}.m3u8`;
这种写法的好处是完全不会因为路径格式变化、字符串匹配错位出错,只要目录路径不变,替换的一定是文件名部分。
写法2(基于原路径直接替换)
如果不想重复写一遍固定的目录路径,可以直接在原最后一项的字符串里替换output字段:
ops[ops.length - 1] = ops[ops.length - 1].replace('output', socket._streamKey);
- 注意:字符串的
replace方法默认只会匹配字符串中第一个出现的output子串,如果后续你调整路径时,目录部分也出现了output字样,会出现匹配错误,不如第一种写法稳妥。 - 两种写法里用到的模板字符串(反引号
`包裹的语法)是JS中拼接动态内容的常用写法,比传统+拼接的方式可读性更高。
内容的提问来源于stack exchange,提问作者user14335933
相关产品推荐
相关产品推荐

