【问题标题】:I need to create a function in javascript where I perform a curl request and then provide inline input我需要在 javascript 中创建一个函数,在其中执行 curl 请求,然后提供内联输入
【发布时间】:2021-04-01 14:17:10
【问题描述】:

我需要在 javascript 中创建一个可以执行 curl 命令的函数:

curl -v -X POST -k -u testUser -d login=testUser2 -d password=123456

当我在终端运行上述命令时,它会提示我输入密码,我必须输入密码,然后我才能登录数据库。

我是 Javascript 新手,所以我不知道该怎么做。

我阅读了一些与 Javascript 中的 exec 和 child process 命令相关的文章,但我没有找到任何示例来说明如何实现所述行为。我在网上找到的示例下方添加:

const { exec } = require('child_process');

export const executeCommand = (cmd, successCallback, errorCallback) => {
  exec(cmd, (error, stdout, stderr) => {
    if (error) {
     // console.log(`error: ${error.message}`);
      if (errorCallback) {
        errorCallback(error.message);
      }
      return;
    }
    if (stderr) {
      //console.log(`stderr: ${stderr}`);
      if (errorCallback) {
        errorCallback(stderr);
      }
      return;
    }
    //console.log(`stdout: ${stdout}`);
    if (successCallback) {
      successCallback(stdout);
    }
  });
};

【问题讨论】:

  • 这能回答你的问题吗? Can JavaScript connect with MySQL?
  • 你为什么要尝试用 JavaScript 包装 mysql cli?
  • mysql 只是一个示例命令,我正在尝试执行 curl 请求
  • 你是在运行 node 还是在浏览器中运行这个 JavaScript?
  • @epascarello 我正在运行节点

标签: javascript node.js curl


【解决方案1】:

如果您真的想这样做,请编写您的命令而不是 cmd。

const { exec } = require("child_process");

exec("curl -v -X POST -k -u testUser:123456 -d login=testUser2 
", (error, stdout, stderr) => {
    if (error) {
        console.log(`error: ${error.message}`);
        return;
    }
    if (stderr) {
        console.log(`stderr: ${stderr}`);
        return;
    }
    console.log(`stdout: ${stdout}`);
});

【讨论】:

  • 但是当我运行代码时我将如何传递内联密码,因为当我在终端中运行 curl 命令时它会要求我输入密码
  • 你可以试试这个 你也可以在命令中包含密码,但是你的密码会出现在 bash 历史中: curl -u username:password example.co
  • curl -u username:password,则不提示输入密码。 programming.vip/docs/…
猜你喜欢
  • 2015-04-05
  • 2021-08-02
  • 2014-10-20
  • 2020-10-21
  • 1970-01-01
  • 1970-01-01
  • 2018-09-28
  • 1970-01-01
  • 2023-02-25
相关资源
最近更新 更多