首页 > 解决方案 > 如何“grep”console.log 的正文?

问题描述

我对 NodeJS 完全陌生,现在我只是根据我找到的代码进行尝试和错误。

我想在家监控我的路由器。要获取数据,我必须通过 nodejs 进行 http 请求,并且必须将“令牌”存储到变量中。此令牌设置为对数据的实际请求的末尾。
curl的输出是:

[long html stuff]
var _httoken = 12391231849184ß
[even longer html stuff]

在 bash curl 我会这样做:

token=`curl -v --silent http://192.168.2.1/html/login/status.html?lang=de 2>&1 | grep _httoken | grep -o '[0-9]\+'

但是当我尝试像这样得到它时:

const { exec } = require('child_process');
exec('curl -v --silent http://192.168.2.1/html/login/status.html?lang=de 2>&1 | grep _httoken | grep -o '[0-9]\+'', (err, stdout, stderr) => {
  if (err) {
    // node couldn't execute the command
    return;
  }

  // the *entire* stdout and stderr (buffered)
  console.log(`stdout: ${stdout}`);
  console.log(`stderr: ${stderr}`);
});

我得到:

exec('curl -v --silent http://192.168.2.1/html/login/status.html?lang=de 2>&1 | grep _httoken | grep -o '[0-9]\+'', (err, stdout, stderr) => {


SyntaxError: Invalid or unexpected token

\.

如何获取存储的数字?

提前致谢

标签: node.jsgreprequest

解决方案


推荐阅读