单击html按钮时如何调用node js函数?

时间:2019-08-18 17:35:09

标签: html node.js

我想创建一个部署按钮,单击该按钮应将一个容器部署到我的kubernetes集群上。为此,每当单击html按钮时,我想调用一个node.js文件,该文件将执行命令“ kubectl apply” -f tomcat.yaml”。因此,当单击html按钮时如何调用node.js文件。我听说可以使用AJAX来实现。

HTML页面

<!DOCTYPE html>
<html>
<body>
    <h3>Example of a Deploy and Decommission Button</h3>
    <button onclick="myFunction()">Deploy</button>
    <button onclick="myFunction()">Decommission</button>
</body>
</html> 

运行kubectl命令的node.js文件

var process = require('child_process');
process.exec('kubectl apply -f tomcat.yaml',function (err,stdout,stderr) {
    if (err) {
        console.log("\n"+stderr);
    } else {
        console.log(stdout);
    }
});

如果有人可以向我展示如何在单击按钮时调用我的代码作为示例,以我个人的理解为例,那么它将对我有帮助。 我听说可以使用AJAX调用服务器端代码或获取请求。但是有人可以通过使用我的html和node.js文件为示例向我展示示例。请帮忙。

1 个答案:

答案 0 :(得分:0)

您可以在nodejs中使用express like作为终点

    const app = require("express")();
    const process = require('child_process');
    app.post("/createContainer", (req, res) => {
     process.exec('kubectl apply -f tomcat.yaml',function (err,stdout,stderr) {
      if (err) {
        console.log("\n"+stderr);
      } else {
        console.log(stdout);
      }
    });
   });
   app.list(80);

完成后,您只需在正面拨打AJAX呼叫

$("#myBtn").click(() => {
  $.post("/createContainer").done(() => {
   console.log("container created")
  });
});