我正在尝试将Serveo命令中生成的URL保存到变量中。 我的代码可以工作,但是一旦我访问生成的链接,一些输出就会添加到标准输出中,然后我的变量就会更改。
let ls = cp.spawn("ssh", ["-R", "80:localhost:4200", "serveo.net"]);
new Promise(function(resolve, reject) {
ls.stdout.on("data", async function(data) {
shellinabox.Localtunnel.URL = await data
.toString()
.split(" ")[3]
.replace("\n", "");
resolve(shellinabox);
});
});
首先,我的代码为我提供了链接 例如:https://justanexample.serveo.net 然后,一旦我转到链接,我的变量将更改为“ to”,这是新标准输出中的第四个单词...
答案 0 :(得分:0)
我没有找出如何始终获得stdout的第一行,但最终在检查stdout之前检查变量是否为空,最终没有使问题复杂化
let serveo = cp.spawn("ssh", ["-R", "80:localhost:4200", "serveo.net"]);
shellinabox.Serveo.PID = serveo.pid;
new Promise(function(resolve, reject) {
serveo.stdout.on("data", async function(data) {
if (shellinabox.Serveo.URL == null) {
shellinabox.Serveo.URL = await data
.toString()
.split(" ")[4]
.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g, "")
.replace("\r", "")
.replace("\n", "");
resolve(shellinabox);
}
});
});